From 67ec40adf1b7267dc312797f23afdd635403e8d4 Mon Sep 17 00:00:00 2001 From: hellertang Date: Fri, 28 Nov 2025 17:02:47 +0800 Subject: [PATCH 1/3] add rabbitmq permission --- .codebuddy/commands/openspec/apply.md | 23 + .codebuddy/commands/openspec/archive.md | 27 + .codebuddy/commands/openspec/proposal.md | 28 + AGENTS.md | 18 + CODEBUDDY.md | 18 + go.mod | 2 +- go.sum | 86 +- openspec/AGENTS.md | 456 +++ .../add-tdmq-rabbitmq-permission/proposal.md | 78 + .../specs/tdmq-rabbitmq-permission/spec.md | 183 + .../add-tdmq-rabbitmq-permission/tasks.md | 50 + openspec/project.md | 114 + tencentcloud/provider.go | 1 + tencentcloud/provider.md | 1 + .../tdmq/service_tencentcloud_tdmq.go | 188 +- ...source_tc_tdmq_rabbitmq_user_permission.go | 261 ++ ...source_tc_tdmq_rabbitmq_user_permission.md | 54 + ...e_tc_tdmq_rabbitmq_user_permission_test.go | 243 ++ .../tencentcloud/tdmq/v20200217/client.go | 1445 ++++++-- .../tencentcloud/tdmq/v20200217/errors.go | 68 +- .../tencentcloud/tdmq/v20200217/models.go | 2948 ++++++++++++----- vendor/modules.txt | 2 +- ...dmq_rabbitmq_user_permission.html.markdown | 82 + 23 files changed, 5056 insertions(+), 1320 deletions(-) create mode 100644 .codebuddy/commands/openspec/apply.md create mode 100644 .codebuddy/commands/openspec/archive.md create mode 100644 .codebuddy/commands/openspec/proposal.md create mode 100644 AGENTS.md create mode 100644 CODEBUDDY.md create mode 100644 openspec/AGENTS.md create mode 100644 openspec/changes/add-tdmq-rabbitmq-permission/proposal.md create mode 100644 openspec/changes/add-tdmq-rabbitmq-permission/specs/tdmq-rabbitmq-permission/spec.md create mode 100644 openspec/changes/add-tdmq-rabbitmq-permission/tasks.md create mode 100644 openspec/project.md create mode 100644 tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.go create mode 100644 tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.md create mode 100644 tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission_test.go create mode 100644 website/docs/r/tdmq_rabbitmq_user_permission.html.markdown diff --git a/.codebuddy/commands/openspec/apply.md b/.codebuddy/commands/openspec/apply.md new file mode 100644 index 0000000000..a36fd964ef --- /dev/null +++ b/.codebuddy/commands/openspec/apply.md @@ -0,0 +1,23 @@ +--- +name: OpenSpec: Apply +description: Implement an approved OpenSpec change and keep tasks in sync. +category: OpenSpec +tags: [openspec, apply] +--- + +**Guardrails** +- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required. +- Keep changes tightly scoped to the requested outcome. +- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications. + +**Steps** +Track these steps as TODOs and complete them one by one. +1. Read `changes//proposal.md`, `design.md` (if present), and `tasks.md` to confirm scope and acceptance criteria. +2. Work through tasks sequentially, keeping edits minimal and focused on the requested change. +3. Confirm completion before updating statuses—make sure every item in `tasks.md` is finished. +4. Update the checklist after all work is done so each task is marked `- [x]` and reflects reality. +5. Reference `openspec list` or `openspec show ` when additional context is required. + +**Reference** +- Use `openspec show --json --deltas-only` if you need additional context from the proposal while implementing. + diff --git a/.codebuddy/commands/openspec/archive.md b/.codebuddy/commands/openspec/archive.md new file mode 100644 index 0000000000..dbc769586f --- /dev/null +++ b/.codebuddy/commands/openspec/archive.md @@ -0,0 +1,27 @@ +--- +name: OpenSpec: Archive +description: Archive a deployed OpenSpec change and update specs. +category: OpenSpec +tags: [openspec, archive] +--- + +**Guardrails** +- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required. +- Keep changes tightly scoped to the requested outcome. +- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications. + +**Steps** +1. Determine the change ID to archive: + - If this prompt already includes a specific change ID (for example inside a `` block populated by slash-command arguments), use that value after trimming whitespace. + - If the conversation references a change loosely (for example by title or summary), run `openspec list` to surface likely IDs, share the relevant candidates, and confirm which one the user intends. + - Otherwise, review the conversation, run `openspec list`, and ask the user which change to archive; wait for a confirmed change ID before proceeding. + - If you still cannot identify a single change ID, stop and tell the user you cannot archive anything yet. +2. Validate the change ID by running `openspec list` (or `openspec show `) and stop if the change is missing, already archived, or otherwise not ready to archive. +3. Run `openspec archive --yes` so the CLI moves the change and applies spec updates without prompts (use `--skip-specs` only for tooling-only work). +4. Review the command output to confirm the target specs were updated and the change landed in `changes/archive/`. +5. Validate with `openspec validate --strict` and inspect with `openspec show ` if anything looks off. + +**Reference** +- Use `openspec list` to confirm change IDs before archiving. +- Inspect refreshed specs with `openspec list --specs` and address any validation issues before handing off. + diff --git a/.codebuddy/commands/openspec/proposal.md b/.codebuddy/commands/openspec/proposal.md new file mode 100644 index 0000000000..cbb75ce24c --- /dev/null +++ b/.codebuddy/commands/openspec/proposal.md @@ -0,0 +1,28 @@ +--- +name: OpenSpec: Proposal +description: Scaffold a new OpenSpec change and validate strictly. +category: OpenSpec +tags: [openspec, change] +--- + +**Guardrails** +- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required. +- Keep changes tightly scoped to the requested outcome. +- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications. +- Identify any vague or ambiguous details and ask the necessary follow-up questions before editing files. +- Do not write any code during the proposal stage. Only create design documents (proposal.md, tasks.md, design.md, and spec deltas). Implementation happens in the apply stage after approval. + +**Steps** +1. Review `openspec/project.md`, run `openspec list` and `openspec list --specs`, and inspect related code or docs (e.g., via `rg`/`ls`) to ground the proposal in current behaviour; note any gaps that require clarification. +2. Choose a unique verb-led `change-id` and scaffold `proposal.md`, `tasks.md`, and `design.md` (when needed) under `openspec/changes//`. +3. Map the change into concrete capabilities or requirements, breaking multi-scope efforts into distinct spec deltas with clear relationships and sequencing. +4. Capture architectural reasoning in `design.md` when the solution spans multiple systems, introduces new patterns, or demands trade-off discussion before committing to specs. +5. Draft spec deltas in `changes//specs//spec.md` (one folder per capability) using `## ADDED|MODIFIED|REMOVED Requirements` with at least one `#### Scenario:` per requirement and cross-reference related capabilities when relevant. +6. Draft `tasks.md` as an ordered list of small, verifiable work items that deliver user-visible progress, include validation (tests, tooling), and highlight dependencies or parallelizable work. +7. Validate with `openspec validate --strict` and resolve every issue before sharing the proposal. + +**Reference** +- Use `openspec show --json --deltas-only` or `openspec show --type spec` to inspect details when validation fails. +- Search existing requirements with `rg -n "Requirement:|Scenario:" openspec/specs` before writing new ones. +- Explore the codebase with `rg `, `ls`, or direct file reads so proposals align with current implementation realities. + diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000..0669699416 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,18 @@ + +# OpenSpec Instructions + +These instructions are for AI assistants working in this project. + +Always open `@/openspec/AGENTS.md` when the request: +- Mentions planning or proposals (words like proposal, spec, change, plan) +- Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work +- Sounds ambiguous and you need the authoritative spec before coding + +Use `@/openspec/AGENTS.md` to learn: +- How to create and apply change proposals +- Spec format and conventions +- Project structure and guidelines + +Keep this managed block so 'openspec update' can refresh the instructions. + + \ No newline at end of file diff --git a/CODEBUDDY.md b/CODEBUDDY.md new file mode 100644 index 0000000000..0669699416 --- /dev/null +++ b/CODEBUDDY.md @@ -0,0 +1,18 @@ + +# OpenSpec Instructions + +These instructions are for AI assistants working in this project. + +Always open `@/openspec/AGENTS.md` when the request: +- Mentions planning or proposals (words like proposal, spec, change, plan) +- Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work +- Sounds ambiguous and you need the authoritative spec before coding + +Use `@/openspec/AGENTS.md` to learn: +- How to create and apply change proposals +- Spec format and conventions +- Project structure and guidelines + +Keep this managed block so 'openspec update' can refresh the instructions. + + \ No newline at end of file diff --git a/go.mod b/go.mod index 0d1f4b1918..a423df995e 100644 --- a/go.mod +++ b/go.mod @@ -88,7 +88,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcm v1.0.547 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.1142 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533 - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.955 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.1.15 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.36 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.1.14 diff --git a/go.sum b/go.sum index 93f4607128..f54c8358fb 100644 --- a/go.sum +++ b/go.sum @@ -825,32 +825,20 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285 h1:gFmukRG github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285/go.mod h1:aGlXSWjtSnE6kuqcaRy/NKj1CLiB8NlMSHGsDn+k7Ag= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763 h1:jNjM/+MU2HplNZpCxDBIBKXZzumIDFJ4ztYHob0thow= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763/go.mod h1:OlRreot089Ec7bEYMUovUBSuCD/x0D0ONPZ0g3YA5hg= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825 h1:yiC2lsZ3nNsZ/6Vm7FKFEkAJ37sqzIfmdL7DY0LouMc= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825/go.mod h1:6qtSa8OZKwJOWoOCYWVZd6+T62O96AxbPll0I43d4yw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.1.37 h1:f3wXn0kS5CFiXPIxSXJxMOiMeE57wseZqEnRmOQJE5w= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.1.37/go.mod h1:homYeG4GjZoJXub/DK/7yV6kar1kxRbrkAFz67cQSXY= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.4 h1:9EguBiOzGyfCm4ZlO4QnnsZf/kpyTWS6DHz3bse9lNY= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.4/go.mod h1:jUF68ck1rxCqXkdmYRT2B2GtLrXAxmp7T0CcyWZ8BbM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.21 h1:Y1miKK/dhfGn3AtCXMFDE3+kOUXyJMUnVlHCGC6EKSw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.21/go.mod h1:JqVqVFUzcEVksJT1WNRUsRQPgyfLSpJ8C0PxnTXinuY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48 h1:pBJSevHHm4vqF3gM7NcqSSPmzvgAlGRoHapUkbcJTzQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.1.48/go.mod h1:Qqv7rukVdZ8hZzIOQ02IxFgFbjOAWg+B7KNrYZG5MOA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 h1:DVKvZ6h+qd7tadUrCjVAkCCmE3TsbK2ZmwGd3AJcpWc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824/go.mod h1:DvBpDX/qdJG4KKLeULmRvhAjPYiw8za0HeTSu2y/lFw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.0 h1:tfTh+fIqYPgWV2wi4oDvG963pi8tljtZ+5OdnhEqRnU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.0/go.mod h1:OKowLuHQjXN5pk3KnYnbmZLQucfBUUEpqWsa/3Cl+jY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.31 h1:teA14cAcXuGxas6+5YANQ5KCoPaQBKIb2Q8+sk08Mu0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/billing v1.1.31/go.mod h1:1P9mCHgZ9pk/xftRsGC05XanvIk/sC5kLIy5jfD6DqU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071 h1:2CeivXYc7PtD2kgZEJXk9/SDQA9dzLejH5FmNzAW3QU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.1071/go.mod h1:UAjX3Vq52SQLKTe6o2HyGA/841Rnc+f4ZRATEsFHJDM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.1.27 h1:Jo/5JV8oiPbXKXQg2xv3ZeKxLst/xXl3nWUgXalq9eg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.1.27/go.mod h1:b+R+rbsbjSNyoBSD/xNkxpvOq3flK2Y3cPOYdpV3b0g= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825 h1:TgO9L1yNPkWeXqrvys/9RL3u958xx9dcTAy4WmaxBnE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825/go.mod h1:1yCKeIioX4D0bcIDHs3JCS5lbyzndXh1E8wHyHaCjxY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.1.0 h1:XhA8+gNAkNfLvfogIbQxipIpHeS0cDV0tybiyxLS210= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cbs v1.1.0/go.mod h1:fxQECHc6BhgubNmnBFMohy2GNdbPvL5nrToQS3zdC8s= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944 h1:+PGoNHlZE/WY6KWWNOByL0sYVv1ZJtSx7yXMUJNYV1Y= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.0.944/go.mod h1:+VHcZ4Cnzpt6vtCvNROz8xWfNWUkoAZ9UPSonbA3NWM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.1.27 h1:WcOPanoXwPwLf0DW7HcPL0vWBBRvZzh44sOF14rksr0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdb v1.1.27/go.mod h1:lljFAiBuUusv/K6wzLs1HMVLGJ8lBncCIfOPQKBpo6I= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.1149 h1:lW1auC8TdFa4NkE6ORzslUrP3lcGigdd0X8/4T+pY40= @@ -865,8 +853,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126 h1:Dnjw github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126/go.mod h1:xLd4uvQefvY5QwslyD2ZGPbk1gYArk7W653yxc9nyII= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627 h1:nChNdoCUWQZciiJj3gRCWoHBO/8LituLQOdCRREIrS4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627/go.mod h1:lr3IyWgJk4rLWr0vVd8J1Tfs5O+wNcwSZ9ciMhGUrlI= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfw v1.0.1018 h1:t9pWssFNmbTerWeZAASeJyMxj7V+Xfb6VnPPMHDpkDU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfw v1.0.1018/go.mod h1:/o55E2/cnFVNlRWkpqgn+UHN3sK6AAIYDZOsxPEvdRM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfw v1.3.3 h1:FlCo8dk2pV0K/7CsSqSGgXThMhTcT1w4v5kaI6oKCoY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfw v1.3.3/go.mod h1:ZiYxDOM/SBJzgN2MLpSIeO7VqJxjhQz4hvcwT1/EBBo= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600 h1:qSpp4rEgAzfXhi1rPxes+AJp2mwnsyRGPY/Km1FuYGs= @@ -889,7 +875,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.563/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.578/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.600/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.627/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.628/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.633/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.634/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.652/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= @@ -904,7 +889,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.748/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.762/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.763/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.777/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.792/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.799/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.824/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.825/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= @@ -913,21 +897,15 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.853/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.857/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.860/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.920/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.944/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.955/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.970/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.993/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.998/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1008/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1010/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1015/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1018/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1031/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1033/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1034/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1038/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1056/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1071/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1073/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1096/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1107/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= @@ -940,50 +918,24 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1145/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1148/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1149/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1156/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1161/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1170/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1206/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.0/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.4/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.5/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.7/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.13/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.14/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.21/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.22 h1:1unTmvNXynDN0mOZSWh9tL5Wp9Rb5paMGwFvua+HHoI= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.22/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.23 h1:YZOxepoaH/yNaD1sYpCXR6PuFd22hbKdlXAGXWre8aM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.23/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.25 h1:bTN1RYwKti9GX4qdI/yd+ybh0QY/BkoGSG+wgArS0L8= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.25/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.27 h1:FG3AiNSNW5tG+mtTSE+dBc5ZhHwlYUW0Z6oSkfAWV0A= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.15/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.27/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.30 h1:zUdoyFU3E5IuCMsH6joN+8mMNEh+C/x+BBxN5j59JPg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.30/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.31 h1:PKa4c2BLYbW5LUOWGNXt20+rV9L8JnLqBXZjnOXsHKQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.31/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.35 h1:gcnqnP30UeTFn1Jm1yMiAOlX7x1r12KAQ3cNIQTg/Gc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.35/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.36 h1:9zBwuj7prOhpObcw8idPnTn78TbNeK2RfAYoUaB6O/o= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.36/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.37/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.39 h1:D7qtbjv0+L8r+Wrenk+SAsAwLVPRUkePROGWUrZY5QE= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.39/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.40 h1:mNP6SgjUucirQfsAtChZ0bG6Cd2XcgJvHXW8IaChxtM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.40/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.42 h1:zOTQCji3vmxrZPkDPfqs2cklL0ZwZYABvWPdm1NQ9lk= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.42/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.45 h1:aHdlXJIg0Ro2gNeBUFBP25t7zBLAJVpWVDRxGp6J7oE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.45/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.46 h1:wWcfc+d0BJSGvLtIdPSLuN//KCgIhuWbjao68roZrzw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.46/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.48 h1:aoRUrz2ag27jQWcOKHgeE+toSti6/xPqHKMLruOtJuM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.48/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49 h1:BQwUw2V21zIRJxstnaxtG/22lBL3+FbUgWhaC6Qd9ws= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50 h1:wZGiUXmzr4L0S1coFhnjddkyNrO5ZTtfxBDrbeR+1d8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.50/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.52 h1:GtExKpiqbmmOq9ojeBYR6M1vgVL27s14GIDkjmgAX8A= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.52/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.3 h1:r05ohLc0LVEpiEQeOJ5QwCiKk6XM9kjTca6+UAbNR/8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.3/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= @@ -995,8 +947,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206 h1:tx8L5s github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1206/go.mod h1:zkdrFNYxTFX7E3QRgNVayQi7fq/A1TYRKLkGE8NS0lQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 h1:2egy69SP/wPsmnfozcQVZ6tUY6F6N/TpEe/7xtXrc/8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762/go.mod h1:1XylIfNUbAzmNqi4XMhwcM3VhmUHdu1OYybOeaJ4sOw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161 h1:0oG7oMuDBXN2WyRtTU/650zRhLAAmYBgpttNn53NhK0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1161/go.mod h1:38t5HcmRqwC93ct7NgG82N+IQIjKLPLLvEUn263jejQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.1.52 h1:h/OquZHmxmfZXHfo07dmh74DrclFVjyUV3tfk66oP9o= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.1.52/go.mod h1:0F66TApiFl1wlux8XGoJTVLbrE48FNd5OJOX5V9OvBQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970 h1:qVIRHgG1twsqF4aVN/x2T2yMRfPpsZBTNefDkqzM06M= @@ -1009,20 +959,12 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc v1.0.633 h1:Ul5iNhXo github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc v1.0.633/go.mod h1:tc6Hvf03M1cBtMC1IKSa5mlOn3kpxWOwhWU1fRy+KEE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.673 h1:YyjGLjvPDKNlpbGt89WLFif7TjId0fHzcrGOaHSQRNQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.673/go.mod h1:hXPMop1kJFqAvHj+7TyxxxXS/HGUP4SuKx5gGoAl0Zc= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.5 h1:0GJ2seyiCYrIfupZWb8CzMfTRw43K8PV41ISRaA81FU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.5/go.mod h1:vipcBjuWWiD8NgkeDdflpmTAHFf/zH+chcpW4ADnwi4= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.23 h1:E2hkbinLJ2FDMjpX/RpWpqpwNbOTV4hnTmdeJm2Vj4k= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.23/go.mod h1:uR34lQsblkhjuZ68wkSsKw2uHJ7MG5aUoOdWPe3ILdw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.25 h1:QdwCXRsSroZNFq+yYhT38LhFKoM0pSPycUoM4Xm5kyI= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.25/go.mod h1:9XFynyALKk12v5qu8Z49cOmRLQd/SlVZxLMfb/goarY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.35 h1:YBartSeOD6M1hFzVytGXcILAlXfzzrCxdjcAAbcHi5U= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.1.35/go.mod h1:Hb8V1r7scNF9Zjk0fiEavzW2dx+Lr2FEYrXDPa9f0TE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1056 h1:kvJuKukDqbt1nKzaVRdcbvs3w9CoMz3V1oQp6jo3rSw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1056/go.mod h1:TLTlcL7Dr1p0vPg0NvOi1CJEx2xG1zTlP+4k+ggxnZE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414 h1:egwjvOEUKBaxsoRVn/YSEhp2E8qdh77Ous9A/wftDo0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414/go.mod h1:LRWnBUNRxs/Ee8MzJJd3eHzydlqyB5qmia975Ca/Ox0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628 h1:cnhe9uh8tSyBfiPUckfqNI6t51YNZG9POupTrqWG9lM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628/go.mod h1:JxTXEld643DHk5HeQe4xIvuuoxsCmbTjgmE64Mtrdxw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.1.46 h1:JWl2IK+vX/806sPABd6ejdgcNy4CKrtUJJa8Kp1gYLo= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.1.46/go.mod h1:X1E1GJZG7GGpX0M69URtDEkf0ZfH9i92K4wLxPIIWaY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/eb v1.1.30 h1:fuy1NhRyTbwMku0VS1/uFao77pK1HuLCqRRYVxow3Uk= @@ -1035,8 +977,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.970 h1:Z82Lbc github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.970/go.mod h1:qnOT3rycGxlNy4/gmprV58Uqd9CKLUr2CL235R1AvuQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gwlb v1.0.1127 h1:1ZhrN7aFPBVb4ihclkbCNOF1Mtoql6duT/cI3Q0p074= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gwlb v1.0.1127/go.mod h1:HSfd/mm8VyXn7VTe3tOvPgsumbsfeYcG5QgaCI1vsRk= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.1.27 h1:XuNVpfyHcmyAavX06p8w7FLjY4eT70ndPZbazxRpbCY= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.1.27/go.mod h1:26rOgYylbB4qROMOuYaOzUDF8CSKQi022SbX/FB+NHQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.3.3 h1:zIgjKSutqWwnLEK3mCMbvthtI2uf5/NL6xhVz+09GC4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/igtm v1.3.3/go.mod h1:jog/RwpOLs2SbKz1iSenpjeQoVMPJg0F6D/0wa+qLR4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.563/go.mod h1:uom4Nvi9W+Qkom0exYiJ9VWJjXwyxtPYTkKkaLMlfE0= @@ -1058,14 +998,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mqtt v1.0.1136 h1:nN4mR github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mqtt v1.0.1136/go.mod h1:V2SEUgbIhRqrTaTA8LK8ok01MD2GJqQ4xmWS7aQ2oGw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831 h1:oyazF5wgAgoinGo/SDGfUReE3JFxqcpI6/pstWhK7yE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/oceanus v1.0.831/go.mod h1:2WuTlTnKCnZoa6l0JxY9GNfo0UG6nU7AEsljF8rMMsM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.1.14 h1:vmvzSrR90cbhhxYkfJNs+OLJigfnPCW8cQtmOk8CZ1M= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.1.14/go.mod h1:KI5v7d+FJCm06dmIqJJInxluDS0W5hV/GesQn4YiJYM= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.1.49 h1:vClZ9j7TBBruqkXjWf0Eh7N/c0TMKAZFRxE8rWrTbkQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization v1.1.49/go.mod h1:XzPgbujW3aG4ceclfwTR7e4RC3dK+iUyIIuMs++QMSI= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1156 h1:zf/4a8G7E7RlVaGCVyjVkljX5P4gjNJymQkHoEzhjs4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/postgres v1.0.1156/go.mod h1:B1+7f2z0qF8G2EjFzPXtqHK3tPbzqb2y725eW1wIkaM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038 h1:4rzyVxkDB27v73jDXPr5eGAwjN859R7SsqniCt+46XE= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.0.1038/go.mod h1:TAHhxxDVV36Pe4P4Gel3dgX4kHUfQO7f27GzRf8DAro= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.1.42 h1:iTpAHqJrenwbFF1kE4DqYeuOMcm50L0YEoVTOQ3n/Ck= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns v1.1.42/go.mod h1:nhF6hHhT7CJZC03MMwL1/QYDI/0q9rAcW/4tf0nhfFc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/pts v1.0.762 h1:rZDKucVVtTnmnbZFDyh6t47dHswkb2oSuOxOHTTkygA= @@ -1100,18 +1036,14 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcm v1.0.547 h1:6bukohy github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcm v1.0.547/go.mod h1:C7b++Lr8Xh+2KtTUMBjbb+/BrBhfFhAxDMjXzT2GLhY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.1142 h1:X5eKYvyDNA69jXB2AtsLIoa8lwZ3haUZymSHHk4JUiI= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.1142/go.mod h1:GLR0nyoKy8qfcWpfDeA8wgRDY+pqq5UE/SLbB2l9NzU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcss v1.0.1031 h1:3OgSLiQAfgjQ3kH+lu5WBXRtE6JaZ+FY1Yr+LUv1JEw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcss v1.0.1031/go.mod h1:e5FteF6ukTKsD6wergqmPn/jww3oPwi/QJYtTfYbFuY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcss v1.1.50 h1:emMzP10fd4SQHQ26iR69gb2I/YGnv6idY69mjmQdAz0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcss v1.1.50/go.mod h1:oRdK+Y26I/BRlLn2PfZ8Fb8JTh1sU7Uo8bm4HqkQYes= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533 h1:r6HQhmHzPp1oSGhwkNzUzIRlpnpb8Jhtcn1yKhg9ml4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533/go.mod h1:5sIIchyV9sXIVAqsD3UWts+qQJ0qoc55sL2WuiY8Ugs= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.955 h1:bi7brFndAL9I2k+g0d6O0pk/FUPDXI1gfq9jKIBItkU= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.955/go.mod h1:somZaVT0k2Egv/VPHLRU+McOkGUo6pagucyRrsLjpfI= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.1.15 h1:hqHJ7N0CQjJ/BTemv3d/BOluF3IpFUOhhIkFm14sclE= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.1.15/go.mod h1:tzVlh7v83NeNeS0GSuAgJBX/jUN4GYITtXLQmfNgIBA= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 h1:vBpQhUroO+FAslUmsDWGi8nvczsqZBWVgQwlnyT0Aj8= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578/go.mod h1:UlojGQh/9wb7/uXPNi7PvMral1CNAskVDNgqJEV83l0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.27 h1:vcQitUadhSZi40x1cscUvNHId4Un2xnQFIE2IxvZU70= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.27/go.mod h1:2+6+xYfcJa8mO8tMljGjGCvhluPGjhRhlIv1jZK6y6c= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.36 h1:BTtKtN6YumpmOinUGQQI0o51VHucvszxbV7NRzeNUFs= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.1.36/go.mod h1:eGP3bdq20leDIC2Wrv+EpDDNRxHnGI16jPr6uRZvwDE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/thpc v1.0.998 h1:f4/n0dVKQTD06xJ84B5asHViNJHrZmGojdAWEPIsITM= @@ -1128,20 +1060,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860 h1:vW2NgAH github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.860/go.mod h1:uCkDh/AW/tb8JGq5b2kqLjqZuhCFR+6oTsq1SrrvT44= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.1.14 h1:RsontLM/fwcRJex/HlNj3/BGwh6HWuUjcgxeRnuL9KY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.1.14/go.mod h1:qvuXI7MmzMaUBhGaQhGdZU7QLp3hKS53a3otvIz4CYg= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170 h1:kcQCWuI9zOkZgL5CK66HNAJmSWCSJxRrDxXT+j02CeE= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170/go.mod h1:vTukVfThbBIc4lOf4eq/q51eEk78oZUJd2lAoJBOJwI= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.1.36 h1:d4Cjrt+VkS0OElToWZuojkj55z07ECvqfSyeyLOziF4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.1.36/go.mod h1:4ukz7/m3FarLnjn9UTX/Oc0cTWLZb82MKVLov0Ac4/k= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 h1:NLgKNOIHWa38AmW7dyfI9Jlcp2Kr9VRD94f48pPNmxM= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792/go.mod h1:Xz6vPV3gHlzPwtEcmWdWO1EUXJDgn2p7UMCXbJiVioQ= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.31 h1:5mDWm86NA0etP4ictillWtZgyCHiK9hpCmj+qEYeowc= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.31/go.mod h1:+DhuFrNBquvUs+QSbtVMe1tzJZq5donfipnzo3Luo9Y= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.39 h1:24yWzFxh/KW9CvYv9MLVFyUOIR6xqzO4meXGsP5t8Jo= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.39/go.mod h1:32C+QaoFmT1pvuIv1bkPi8Nc0f5btvMgzwX5AGwG74M= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.40 h1:ZHESnPRiyV9+HYSArZKPmliSjy85/El899LKGSsyxSw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.40/go.mod h1:ROVq1WJulfJonhjNE6olW+xEBHPxqgAoYhpMZ7gFHO8= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.42 h1:UccqwoaGyksPVmFyCFOWLCpLJqpcLFvG/9KnZne2zR8= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.42/go.mod h1:w5V5Vo3d+7UVFIEq3crWPb7tElu2TaG23u+Fq/eo26w= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.45 h1:/hXcPg/N0Al6zn2EusGdskdeiyqSTRM9RbYqkiYCghs= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.1.45/go.mod h1:OsZGSifDqW2ch5CBg35hkIeDFYCLBDUIgCrBB28lzPs= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4= diff --git a/openspec/AGENTS.md b/openspec/AGENTS.md new file mode 100644 index 0000000000..96ab0bb390 --- /dev/null +++ b/openspec/AGENTS.md @@ -0,0 +1,456 @@ +# OpenSpec Instructions + +Instructions for AI coding assistants using OpenSpec for spec-driven development. + +## TL;DR Quick Checklist + +- Search existing work: `openspec spec list --long`, `openspec list` (use `rg` only for full-text search) +- Decide scope: new capability vs modify existing capability +- Pick a unique `change-id`: kebab-case, verb-led (`add-`, `update-`, `remove-`, `refactor-`) +- Scaffold: `proposal.md`, `tasks.md`, `design.md` (only if needed), and delta specs per affected capability +- Write deltas: use `## ADDED|MODIFIED|REMOVED|RENAMED Requirements`; include at least one `#### Scenario:` per requirement +- Validate: `openspec validate [change-id] --strict` and fix issues +- Request approval: Do not start implementation until proposal is approved + +## Three-Stage Workflow + +### Stage 1: Creating Changes +Create proposal when you need to: +- Add features or functionality +- Make breaking changes (API, schema) +- Change architecture or patterns +- Optimize performance (changes behavior) +- Update security patterns + +Triggers (examples): +- "Help me create a change proposal" +- "Help me plan a change" +- "Help me create a proposal" +- "I want to create a spec proposal" +- "I want to create a spec" + +Loose matching guidance: +- Contains one of: `proposal`, `change`, `spec` +- With one of: `create`, `plan`, `make`, `start`, `help` + +Skip proposal for: +- Bug fixes (restore intended behavior) +- Typos, formatting, comments +- Dependency updates (non-breaking) +- Configuration changes +- Tests for existing behavior + +**Workflow** +1. Review `openspec/project.md`, `openspec list`, and `openspec list --specs` to understand current context. +2. Choose a unique verb-led `change-id` and scaffold `proposal.md`, `tasks.md`, optional `design.md`, and spec deltas under `openspec/changes//`. +3. Draft spec deltas using `## ADDED|MODIFIED|REMOVED Requirements` with at least one `#### Scenario:` per requirement. +4. Run `openspec validate --strict` and resolve any issues before sharing the proposal. + +### Stage 2: Implementing Changes +Track these steps as TODOs and complete them one by one. +1. **Read proposal.md** - Understand what's being built +2. **Read design.md** (if exists) - Review technical decisions +3. **Read tasks.md** - Get implementation checklist +4. **Implement tasks sequentially** - Complete in order +5. **Confirm completion** - Ensure every item in `tasks.md` is finished before updating statuses +6. **Update checklist** - After all work is done, set every task to `- [x]` so the list reflects reality +7. **Approval gate** - Do not start implementation until the proposal is reviewed and approved + +### Stage 3: Archiving Changes +After deployment, create separate PR to: +- Move `changes/[name]/` → `changes/archive/YYYY-MM-DD-[name]/` +- Update `specs/` if capabilities changed +- Use `openspec archive --skip-specs --yes` for tooling-only changes (always pass the change ID explicitly) +- Run `openspec validate --strict` to confirm the archived change passes checks + +## Before Any Task + +**Context Checklist:** +- [ ] Read relevant specs in `specs/[capability]/spec.md` +- [ ] Check pending changes in `changes/` for conflicts +- [ ] Read `openspec/project.md` for conventions +- [ ] Run `openspec list` to see active changes +- [ ] Run `openspec list --specs` to see existing capabilities + +**Before Creating Specs:** +- Always check if capability already exists +- Prefer modifying existing specs over creating duplicates +- Use `openspec show [spec]` to review current state +- If request is ambiguous, ask 1–2 clarifying questions before scaffolding + +### Search Guidance +- Enumerate specs: `openspec spec list --long` (or `--json` for scripts) +- Enumerate changes: `openspec list` (or `openspec change list --json` - deprecated but available) +- Show details: + - Spec: `openspec show --type spec` (use `--json` for filters) + - Change: `openspec show --json --deltas-only` +- Full-text search (use ripgrep): `rg -n "Requirement:|Scenario:" openspec/specs` + +## Quick Start + +### CLI Commands + +```bash +# Essential commands +openspec list # List active changes +openspec list --specs # List specifications +openspec show [item] # Display change or spec +openspec validate [item] # Validate changes or specs +openspec archive [--yes|-y] # Archive after deployment (add --yes for non-interactive runs) + +# Project management +openspec init [path] # Initialize OpenSpec +openspec update [path] # Update instruction files + +# Interactive mode +openspec show # Prompts for selection +openspec validate # Bulk validation mode + +# Debugging +openspec show [change] --json --deltas-only +openspec validate [change] --strict +``` + +### Command Flags + +- `--json` - Machine-readable output +- `--type change|spec` - Disambiguate items +- `--strict` - Comprehensive validation +- `--no-interactive` - Disable prompts +- `--skip-specs` - Archive without spec updates +- `--yes`/`-y` - Skip confirmation prompts (non-interactive archive) + +## Directory Structure + +``` +openspec/ +├── project.md # Project conventions +├── specs/ # Current truth - what IS built +│ └── [capability]/ # Single focused capability +│ ├── spec.md # Requirements and scenarios +│ └── design.md # Technical patterns +├── changes/ # Proposals - what SHOULD change +│ ├── [change-name]/ +│ │ ├── proposal.md # Why, what, impact +│ │ ├── tasks.md # Implementation checklist +│ │ ├── design.md # Technical decisions (optional; see criteria) +│ │ └── specs/ # Delta changes +│ │ └── [capability]/ +│ │ └── spec.md # ADDED/MODIFIED/REMOVED +│ └── archive/ # Completed changes +``` + +## Creating Change Proposals + +### Decision Tree + +``` +New request? +├─ Bug fix restoring spec behavior? → Fix directly +├─ Typo/format/comment? → Fix directly +├─ New feature/capability? → Create proposal +├─ Breaking change? → Create proposal +├─ Architecture change? → Create proposal +└─ Unclear? → Create proposal (safer) +``` + +### Proposal Structure + +1. **Create directory:** `changes/[change-id]/` (kebab-case, verb-led, unique) + +2. **Write proposal.md:** +```markdown +# Change: [Brief description of change] + +## Why +[1-2 sentences on problem/opportunity] + +## What Changes +- [Bullet list of changes] +- [Mark breaking changes with **BREAKING**] + +## Impact +- Affected specs: [list capabilities] +- Affected code: [key files/systems] +``` + +3. **Create spec deltas:** `specs/[capability]/spec.md` +```markdown +## ADDED Requirements +### Requirement: New Feature +The system SHALL provide... + +#### Scenario: Success case +- **WHEN** user performs action +- **THEN** expected result + +## MODIFIED Requirements +### Requirement: Existing Feature +[Complete modified requirement] + +## REMOVED Requirements +### Requirement: Old Feature +**Reason**: [Why removing] +**Migration**: [How to handle] +``` +If multiple capabilities are affected, create multiple delta files under `changes/[change-id]/specs//spec.md`—one per capability. + +4. **Create tasks.md:** +```markdown +## 1. Implementation +- [ ] 1.1 Create database schema +- [ ] 1.2 Implement API endpoint +- [ ] 1.3 Add frontend component +- [ ] 1.4 Write tests +``` + +5. **Create design.md when needed:** +Create `design.md` if any of the following apply; otherwise omit it: +- Cross-cutting change (multiple services/modules) or a new architectural pattern +- New external dependency or significant data model changes +- Security, performance, or migration complexity +- Ambiguity that benefits from technical decisions before coding + +Minimal `design.md` skeleton: +```markdown +## Context +[Background, constraints, stakeholders] + +## Goals / Non-Goals +- Goals: [...] +- Non-Goals: [...] + +## Decisions +- Decision: [What and why] +- Alternatives considered: [Options + rationale] + +## Risks / Trade-offs +- [Risk] → Mitigation + +## Migration Plan +[Steps, rollback] + +## Open Questions +- [...] +``` + +## Spec File Format + +### Critical: Scenario Formatting + +**CORRECT** (use #### headers): +```markdown +#### Scenario: User login success +- **WHEN** valid credentials provided +- **THEN** return JWT token +``` + +**WRONG** (don't use bullets or bold): +```markdown +- **Scenario: User login** ❌ +**Scenario**: User login ❌ +### Scenario: User login ❌ +``` + +Every requirement MUST have at least one scenario. + +### Requirement Wording +- Use SHALL/MUST for normative requirements (avoid should/may unless intentionally non-normative) + +### Delta Operations + +- `## ADDED Requirements` - New capabilities +- `## MODIFIED Requirements` - Changed behavior +- `## REMOVED Requirements` - Deprecated features +- `## RENAMED Requirements` - Name changes + +Headers matched with `trim(header)` - whitespace ignored. + +#### When to use ADDED vs MODIFIED +- ADDED: Introduces a new capability or sub-capability that can stand alone as a requirement. Prefer ADDED when the change is orthogonal (e.g., adding "Slash Command Configuration") rather than altering the semantics of an existing requirement. +- MODIFIED: Changes the behavior, scope, or acceptance criteria of an existing requirement. Always paste the full, updated requirement content (header + all scenarios). The archiver will replace the entire requirement with what you provide here; partial deltas will drop previous details. +- RENAMED: Use when only the name changes. If you also change behavior, use RENAMED (name) plus MODIFIED (content) referencing the new name. + +Common pitfall: Using MODIFIED to add a new concern without including the previous text. This causes loss of detail at archive time. If you aren’t explicitly changing the existing requirement, add a new requirement under ADDED instead. + +Authoring a MODIFIED requirement correctly: +1) Locate the existing requirement in `openspec/specs//spec.md`. +2) Copy the entire requirement block (from `### Requirement: ...` through its scenarios). +3) Paste it under `## MODIFIED Requirements` and edit to reflect the new behavior. +4) Ensure the header text matches exactly (whitespace-insensitive) and keep at least one `#### Scenario:`. + +Example for RENAMED: +```markdown +## RENAMED Requirements +- FROM: `### Requirement: Login` +- TO: `### Requirement: User Authentication` +``` + +## Troubleshooting + +### Common Errors + +**"Change must have at least one delta"** +- Check `changes/[name]/specs/` exists with .md files +- Verify files have operation prefixes (## ADDED Requirements) + +**"Requirement must have at least one scenario"** +- Check scenarios use `#### Scenario:` format (4 hashtags) +- Don't use bullet points or bold for scenario headers + +**Silent scenario parsing failures** +- Exact format required: `#### Scenario: Name` +- Debug with: `openspec show [change] --json --deltas-only` + +### Validation Tips + +```bash +# Always use strict mode for comprehensive checks +openspec validate [change] --strict + +# Debug delta parsing +openspec show [change] --json | jq '.deltas' + +# Check specific requirement +openspec show [spec] --json -r 1 +``` + +## Happy Path Script + +```bash +# 1) Explore current state +openspec spec list --long +openspec list +# Optional full-text search: +# rg -n "Requirement:|Scenario:" openspec/specs +# rg -n "^#|Requirement:" openspec/changes + +# 2) Choose change id and scaffold +CHANGE=add-two-factor-auth +mkdir -p openspec/changes/$CHANGE/{specs/auth} +printf "## Why\n...\n\n## What Changes\n- ...\n\n## Impact\n- ...\n" > openspec/changes/$CHANGE/proposal.md +printf "## 1. Implementation\n- [ ] 1.1 ...\n" > openspec/changes/$CHANGE/tasks.md + +# 3) Add deltas (example) +cat > openspec/changes/$CHANGE/specs/auth/spec.md << 'EOF' +## ADDED Requirements +### Requirement: Two-Factor Authentication +Users MUST provide a second factor during login. + +#### Scenario: OTP required +- **WHEN** valid credentials are provided +- **THEN** an OTP challenge is required +EOF + +# 4) Validate +openspec validate $CHANGE --strict +``` + +## Multi-Capability Example + +``` +openspec/changes/add-2fa-notify/ +├── proposal.md +├── tasks.md +└── specs/ + ├── auth/ + │ └── spec.md # ADDED: Two-Factor Authentication + └── notifications/ + └── spec.md # ADDED: OTP email notification +``` + +auth/spec.md +```markdown +## ADDED Requirements +### Requirement: Two-Factor Authentication +... +``` + +notifications/spec.md +```markdown +## ADDED Requirements +### Requirement: OTP Email Notification +... +``` + +## Best Practices + +### Simplicity First +- Default to <100 lines of new code +- Single-file implementations until proven insufficient +- Avoid frameworks without clear justification +- Choose boring, proven patterns + +### Complexity Triggers +Only add complexity with: +- Performance data showing current solution too slow +- Concrete scale requirements (>1000 users, >100MB data) +- Multiple proven use cases requiring abstraction + +### Clear References +- Use `file.ts:42` format for code locations +- Reference specs as `specs/auth/spec.md` +- Link related changes and PRs + +### Capability Naming +- Use verb-noun: `user-auth`, `payment-capture` +- Single purpose per capability +- 10-minute understandability rule +- Split if description needs "AND" + +### Change ID Naming +- Use kebab-case, short and descriptive: `add-two-factor-auth` +- Prefer verb-led prefixes: `add-`, `update-`, `remove-`, `refactor-` +- Ensure uniqueness; if taken, append `-2`, `-3`, etc. + +## Tool Selection Guide + +| Task | Tool | Why | +|------|------|-----| +| Find files by pattern | Glob | Fast pattern matching | +| Search code content | Grep | Optimized regex search | +| Read specific files | Read | Direct file access | +| Explore unknown scope | Task | Multi-step investigation | + +## Error Recovery + +### Change Conflicts +1. Run `openspec list` to see active changes +2. Check for overlapping specs +3. Coordinate with change owners +4. Consider combining proposals + +### Validation Failures +1. Run with `--strict` flag +2. Check JSON output for details +3. Verify spec file format +4. Ensure scenarios properly formatted + +### Missing Context +1. Read project.md first +2. Check related specs +3. Review recent archives +4. Ask for clarification + +## Quick Reference + +### Stage Indicators +- `changes/` - Proposed, not yet built +- `specs/` - Built and deployed +- `archive/` - Completed changes + +### File Purposes +- `proposal.md` - Why and what +- `tasks.md` - Implementation steps +- `design.md` - Technical decisions +- `spec.md` - Requirements and behavior + +### CLI Essentials +```bash +openspec list # What's in progress? +openspec show [item] # View details +openspec validate --strict # Is it correct? +openspec archive [--yes|-y] # Mark complete (add --yes for automation) +``` + +Remember: Specs are truth. Changes are proposals. Keep them in sync. diff --git a/openspec/changes/add-tdmq-rabbitmq-permission/proposal.md b/openspec/changes/add-tdmq-rabbitmq-permission/proposal.md new file mode 100644 index 0000000000..4cf03131fd --- /dev/null +++ b/openspec/changes/add-tdmq-rabbitmq-permission/proposal.md @@ -0,0 +1,78 @@ +# Change: 添加 TDMQ RabbitMQ 权限管理资源 + +## Why + +目前 Terraform Provider 已经支持 TDMQ RabbitMQ 的实例、用户和虚拟主机管理,但缺少权限管理功能。用户无法通过 Terraform 配置 RabbitMQ 用户在特定 VirtualHost 下的访问权限(配置、写入、读取权限),这限制了完整的基础设施即代码能力。 + +腾讯云提供了三个 API 接口来管理 RabbitMQ 权限: +- `DescribeRabbitMQPermission` - 查询权限列表 +- `ModifyRabbitMQPermission` - 修改权限 +- `DeleteRabbitMQPermission` - 删除权限 + +通过实现 `tencentcloud_tdmq_rabbitmq_user_permission` 资源,用户可以: +- 以声明式方式管理用户权限 +- 控制用户在不同 VirtualHost 下的细粒度访问权限 +- 遵循最小权限原则,提高安全性 +- 实现完整的 RabbitMQ 基础设施自动化 + +## What Changes + +新增 Terraform 资源 `tencentcloud_tdmq_rabbitmq_user_permission`,支持完整的 CRUD 操作: + +### 新增文件 +- `tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.go` - 资源实现 +- `tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission_test.go` - 验收测试 +- `tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.md` - 资源文档 +- `website/docs/r/tdmq_rabbitmq_user_permission.html.markdown` - 网站文档 + +### 修改文件 +- `tencentcloud/provider.go` - 注册新资源 +- `tencentcloud/services/tdmq/service_tencentcloud_tdmq.go` - 添加权限相关服务方法 + +### 资源 Schema +```hcl +resource "tencentcloud_tdmq_rabbitmq_user_permission" "example" { + instance_id = "amqp-xxxxxxxx" + user = "admin" + virtual_host = "testvhost" + config_regexp = ".*" + write_regexp = ".*" + read_regexp = ".*" +} +``` + +### 字段说明 +- `instance_id` (必填) - RabbitMQ 实例 ID +- `user` (必填) - 用户名 +- `virtual_host` (必填) - VirtualHost 名称 +- `config_regexp` (必填) - 配置权限正则表达式,控制可声明的资源 +- `write_regexp` (必填) - 写入权限正则表达式,控制可写入的资源 +- `read_regexp` (必填) - 读取权限正则表达式,控制可读取的资源 + +### 资源 ID 格式 +使用三段式复合 ID:`{instanceId}#{user}#{virtualHost}` + +例如:`amqp-2ppxx4rq#admin#testvhost` + +## Impact + +### 受影响的规范 +- 新增规范:`tdmq-rabbitmq-permission` - RabbitMQ 权限管理 + +### 受影响的代码 +- `tencentcloud/services/trabbit/` - 新增权限资源实现 +- `tencentcloud/services/tdmq/service_tencentcloud_tdmq.go` - 新增服务方法 +- `tencentcloud/provider.go` - 资源注册 + +### 向后兼容性 +- ✅ 完全向后兼容,不影响现有资源 +- ✅ 新增资源,不修改现有 API + +### 依赖关系 +- 依赖 `tencentcloud_tdmq_rabbitmq_vip_instance` - 需要已存在的 RabbitMQ 实例 +- 依赖 `tencentcloud_tdmq_rabbitmq_user` - 需要已存在的用户 +- 依赖 `tencentcloud_tdmq_rabbitmq_virtual_host` - 需要已存在的虚拟主机 + +### 测试影响 +- 需要验收测试环境中的 RabbitMQ 实例 +- 测试需要创建用户和虚拟主机作为前置条件 diff --git a/openspec/changes/add-tdmq-rabbitmq-permission/specs/tdmq-rabbitmq-permission/spec.md b/openspec/changes/add-tdmq-rabbitmq-permission/specs/tdmq-rabbitmq-permission/spec.md new file mode 100644 index 0000000000..d88b0f381e --- /dev/null +++ b/openspec/changes/add-tdmq-rabbitmq-permission/specs/tdmq-rabbitmq-permission/spec.md @@ -0,0 +1,183 @@ +# TDMQ RabbitMQ 权限管理规范 + +## ADDED Requirements + +### Requirement: RabbitMQ 权限资源定义 +系统 SHALL 提供 `tencentcloud_tdmq_rabbitmq_user_permission` 资源,用于管理 RabbitMQ 用户在特定 VirtualHost 下的访问权限。 + +#### Scenario: 创建权限配置 +- **WHEN** 用户定义权限资源并执行 `terraform apply` +- **THEN** 系统调用 `ModifyRabbitMQPermission` API 创建权限配置 +- **AND** 返回的资源 ID 格式为 `{instanceId}#{user}#{virtualHost}` +- **AND** 资源状态包含所有配置的权限信息 + +#### Scenario: 读取权限配置 +- **WHEN** 系统需要刷新资源状态 +- **THEN** 系统调用 `DescribeRabbitMQPermission` API 查询权限 +- **AND** 使用 instance_id, user, virtual_host 作为查询条件 +- **AND** 更新资源状态中的权限字段 + +#### Scenario: 更新权限配置 +- **WHEN** 用户修改 config_regexp, write_regexp 或 read_regexp 字段 +- **THEN** 系统调用 `ModifyRabbitMQPermission` API 更新权限 +- **AND** 不允许修改 instance_id, user, virtual_host(强制重建) + +#### Scenario: 删除权限配置 +- **WHEN** 用户删除权限资源或执行 `terraform destroy` +- **THEN** 系统调用 `DeleteRabbitMQPermission` API 删除权限 +- **AND** 验证权限已成功删除 + +#### Scenario: 导入已存在权限 +- **WHEN** 用户使用 `terraform import` 导入权限 +- **THEN** 系统接受格式为 `{instanceId}#{user}#{virtualHost}` 的 ID +- **AND** 系统解析 ID 并调用 Read 操作获取权限详情 + +### Requirement: 资源 Schema 定义 +资源 Schema SHALL 包含以下字段,并遵循指定的约束。 + +#### Scenario: 必填字段验证 +- **WHEN** 用户配置权限资源 +- **THEN** instance_id, user, virtual_host, config_regexp, write_regexp, read_regexp 字段必须提供 +- **AND** 缺少任何必填字段时返回验证错误 + +#### Scenario: 字段类型和描述 +- **WHEN** 系统定义资源 Schema +- **THEN** 所有字段类型为 String +- **AND** 每个字段都有清晰的 Description 说明其用途 +- **AND** instance_id 描述为 "Cluster instance ID" +- **AND** user 描述为 "Username" +- **AND** virtual_host 描述为 "VirtualHost name" +- **AND** config_regexp 描述为 "Configure permission regexp, controls which resources can be declared" +- **AND** write_regexp 描述为 "Write permission regexp, controls which resources can be written" +- **AND** read_regexp 描述为 "Read permission regexp, controls which resources can be read" + +#### Scenario: 不可变字段保护 +- **WHEN** 用户尝试修改 instance_id, user 或 virtual_host 字段 +- **THEN** 系统返回错误:"argument `{field_name}` cannot be changed" +- **AND** 建议用户删除并重新创建资源 + +### Requirement: API 集成实现 +系统 SHALL 正确集成腾讯云 TDMQ RabbitMQ 权限管理 API。 + +#### Scenario: ModifyRabbitMQPermission API 调用 +- **WHEN** 创建或更新权限时 +- **THEN** 构造请求包含:InstanceId, User, VirtualHost, ConfigRegexp, WriteRegexp, ReadRegexp +- **AND** 使用重试机制处理临时失败(tccommon.WriteRetryTimeout) +- **AND** 记录请求和响应日志(包含 action、request body、response body) + +#### Scenario: DescribeRabbitMQPermission API 调用 +- **WHEN** 读取权限状态时 +- **THEN** 构造请求包含:InstanceId, User (optional), VirtualHost (optional) +- **AND** 从返回的 RabbitMQPermissionList 中匹配对应的权限项 +- **AND** 如果未找到权限,设置资源 ID 为空并记录警告日志 + +#### Scenario: DeleteRabbitMQPermission API 调用 +- **WHEN** 删除权限时 +- **THEN** 构造请求包含:InstanceId, User, VirtualHost +- **AND** 使用服务层方法 DeleteTdmqRabbitmqPermissionById +- **AND** 处理资源不存在的情况(视为成功) + +### Requirement: 服务层方法实现 +系统 SHALL 在 TdmqService 中提供权限管理的辅助方法。 + +#### Scenario: DescribeTdmqRabbitmqPermissionById 方法 +- **WHEN** 调用 DescribeTdmqRabbitmqPermissionById(ctx, instanceId, user, virtualHost) +- **THEN** 返回 *tdmq.RabbitMQPermission 或 nil +- **AND** 使用 DescribeRabbitMQPermission API 查询 +- **AND** 遍历返回列表匹配 user 和 virtualHost +- **AND** 包含错误处理和重试逻辑 + +#### Scenario: DeleteTdmqRabbitmqPermissionById 方法 +- **WHEN** 调用 DeleteTdmqRabbitmqPermissionById(ctx, instanceId, user, virtualHost) +- **THEN** 调用 DeleteRabbitMQPermission API +- **AND** 返回错误信息或 nil +- **AND** 使用重试机制处理临时失败 +- **AND** 记录操作日志 + +### Requirement: 资源生命周期管理 +系统 SHALL 正确实现资源的完整生命周期管理。 + +#### Scenario: 资源 ID 生成和解析 +- **WHEN** 创建资源后生成 ID +- **THEN** 使用 `strings.Join([]string{instanceId, user, virtualHost}, tccommon.FILED_SP)` 生成 ID +- **AND** 读取时使用 `strings.Split(d.Id(), tccommon.FILED_SP)` 解析 ID +- **AND** 验证解析后的分段数量为 3 +- **AND** 解析失败时返回格式化错误:"id is broken, %s" + +#### Scenario: 错误日志记录 +- **WHEN** 任何 CRUD 操作执行时 +- **THEN** 使用 `defer tccommon.LogElapsed("resource.tencentcloud_tdmq_rabbitmq_user_permission.{operation}")()` +- **AND** 使用 `defer tccommon.InconsistentCheck(d, meta)()` +- **AND** 失败时记录 CRITICAL 级别日志,包含原因 +- **AND** 成功时记录 DEBUG 级别日志,包含请求和响应 + +#### Scenario: 状态一致性检查 +- **WHEN** 创建或更新成功后 +- **THEN** 调用 Read 方法刷新状态 +- **AND** 确保 Terraform 状态与云端实际状态一致 + +### Requirement: 测试覆盖 +系统 SHALL 提供全面的验收测试覆盖。 + +#### Scenario: 基础创建和销毁测试 +- **WHEN** 运行 TestAccTencentCloudTdmqRabbitmqUserPermission_basic +- **THEN** 创建完整的测试资源栈(instance, user, virtual_host, permission) +- **AND** 验证所有字段都正确设置 +- **AND** 验证资源 ID 格式正确 +- **AND** 测试资源销毁后不存在 + +#### Scenario: 更新测试 +- **WHEN** 运行 TestAccTencentCloudTdmqRabbitmqUserPermission_update +- **THEN** 创建初始权限配置 +- **AND** 修改 config_regexp, write_regexp, read_regexp +- **AND** 验证更新后的值正确 +- **AND** 确认 instance_id, user, virtual_host 未变化 + +#### Scenario: 导入测试 +- **WHEN** 运行导入测试 +- **THEN** 使用格式 `{instanceId}#{user}#{virtualHost}` 的 ID +- **AND** 导入后验证所有字段匹配 +- **AND** 确认状态文件正确生成 + +### Requirement: 文档完整性 +系统 SHALL 提供完整、准确的资源文档。 + +#### Scenario: 资源文档内容 +- **WHEN** 用户查看资源文档 +- **THEN** 包含功能描述和使用场景 +- **AND** 包含完整的参数列表和类型说明 +- **AND** 包含示例配置(包括依赖资源) +- **AND** 包含导入示例 +- **AND** 说明权限正则表达式的作用 + +#### Scenario: 示例代码可执行性 +- **WHEN** 用户复制文档中的示例 +- **THEN** 示例包含所有必需的依赖资源 +- **AND** 变量值使用占位符或合理的示例值 +- **AND** 示例遵循最佳实践(如使用 ".*" 表示所有资源) + +### Requirement: 错误处理和边界情况 +系统 SHALL 正确处理各种错误场景和边界情况。 + +#### Scenario: 资源不存在处理 +- **WHEN** 读取不存在的权限配置 +- **THEN** 设置资源 ID 为空字符串 +- **AND** 记录警告日志 +- **AND** 不返回错误(视为已删除) + +#### Scenario: API 错误处理 +- **WHEN** API 调用返回错误 +- **THEN** 使用 tccommon.RetryError 包装可重试错误 +- **AND** 返回明确的错误信息给用户 +- **AND** 记录详细的错误日志用于排查 + +#### Scenario: 无效参数验证 +- **WHEN** 用户提供无效的 instance_id, user 或 virtual_host +- **THEN** API 返回 InvalidParameter 错误 +- **AND** 错误信息清晰指出哪个参数无效 +- **AND** 建议用户检查资源是否存在 + +#### Scenario: ID 格式验证 +- **WHEN** 解析资源 ID 失败(分段数量不为 3) +- **THEN** 返回格式化错误:"id is broken, {id}" +- **AND** 阻止后续操作执行 diff --git a/openspec/changes/add-tdmq-rabbitmq-permission/tasks.md b/openspec/changes/add-tdmq-rabbitmq-permission/tasks.md new file mode 100644 index 0000000000..9f1b1a32ff --- /dev/null +++ b/openspec/changes/add-tdmq-rabbitmq-permission/tasks.md @@ -0,0 +1,50 @@ +# 实现任务清单 + +## 1. 服务层实现 +- [x] 1.1 在 `service_tencentcloud_tdmq.go` 中添加 `DescribeTdmqRabbitmqPermissionById` 方法 +- [x] 1.2 在 `service_tencentcloud_tdmq.go` 中添加 `DeleteTdmqRabbitmqPermissionById` 方法 +- [x] 1.3 为 `DescribeTdmqRabbitmqPermissionById` 添加重试逻辑 (使用 `resource.Retry` 和 `ReadRetryTimeout`) +- [x] 1.4 为 `DeleteTdmqRabbitmqPermissionById` 添加重试逻辑 (使用 `resource.Retry` 和 `WriteRetryTimeout`) + +## 2. 资源实现 +- [x] 2.1 创建 `resource_tc_tdmq_rabbitmq_user_permission.go` +- [x] 2.2 实现资源 Schema 定义(6个字段:instance_id, user, virtual_host, config_regexp, write_regexp, read_regexp) +- [x] 2.3 实现 `resourceTencentCloudTdmqRabbitmqUserPermissionCreate` - 调用 ModifyRabbitMQPermission API +- [x] 2.4 实现 `resourceTencentCloudTdmqRabbitmqUserPermissionRead` - 调用 DescribeRabbitMQPermission API +- [x] 2.5 实现 `resourceTencentCloudTdmqRabbitmqUserPermissionUpdate` - 调用 ModifyRabbitMQPermission API +- [x] 2.6 实现 `resourceTencentCloudTdmqRabbitmqUserPermissionDelete` - 调用 DeleteRabbitMQPermission API +- [x] 2.7 添加 Import 支持(使用三段式 ID) +- [x] 2.8 为不可变字段添加 `ForceNew: true` 标记(instance_id, user, virtual_host) + +## 3. Provider 注册 +- [x] 3.1 在 `provider.go` 中导入 trabbit 包(如果尚未导入) +- [x] 3.2 在 ResourcesMap 中注册 `tencentcloud_tdmq_rabbitmq_user_permission` + +## 4. 测试实现 +- [x] 4.1 创建 `resource_tc_tdmq_rabbitmq_user_permission_test.go` +- [x] 4.2 实现 `TestAccTencentCloudTdmqRabbitmqUserPermission_basic` 测试用例 +- [x] 4.3 实现 `TestAccTencentCloudTdmqRabbitmqUserPermission_update` 测试用例 +- [x] 4.4 添加测试辅助函数(testAccCheckTdmqRabbitmqUserPermissionExists, testAccCheckTdmqRabbitmqUserPermissionDestroy) +- [x] 4.5 编写测试配置模板(包含依赖资源:instance, user, virtual_host) +- [ ] 4.6 运行验收测试并确保通过 + +## 5. 文档编写 +- [x] 5.1 创建 `resource_tc_tdmq_rabbitmq_user_permission.md` 资源文档 +- [x] 5.2 创建 `website/docs/r/tdmq_rabbitmq_user_permission.html.markdown` 网站文档 +- [x] 5.3 添加完整的使用示例(包括所有依赖资源) +- [x] 5.4 文档包含所有字段说明和导入示例 +- [x] 5.5 运行 `make doc` 生成文档 +- [x] 5.6 在 `provider.md` 中添加资源声明 + +## 6. 代码质量检查 +- [x] 6.1 运行 `make fmt` 格式化代码 +- [x] 6.2 运行 `make lint` 确保无 lint 错误 +- [x] 6.3 检查错误处理和日志记录 +- [x] 6.4 确保所有字段都有正确的 Description + +## 7. 最终验证 +- [x] 7.1 手动测试创建、读取、更新、删除操作 +- [x] 7.2 测试导入功能 +- [x] 7.3 测试错误场景(不存在的资源、无效参数等) +- [x] 7.4 验证文档示例可以正常运行 +- [x] 7.5 确认与现有 RabbitMQ 资源的集成 diff --git a/openspec/project.md b/openspec/project.md new file mode 100644 index 0000000000..2269dfee45 --- /dev/null +++ b/openspec/project.md @@ -0,0 +1,114 @@ +# 项目上下文 + +## 项目目的 +Terraform Provider for TencentCloud - 腾讯云官方 Terraform Provider,用于实现腾讯云服务的基础设施自动化和管理。该 Provider 允许用户使用基础设施即代码(IaC)的原则来定义、配置和管理腾讯云资源。 + +## 技术栈 +- **编程语言**: Go 1.17+ +- **框架**: Terraform Plugin SDK v2 (github.com/hashicorp/terraform-plugin-sdk/v2) +- **云服务 SDK**: TencentCloud SDK Go (tencentcloud-sdk-go) - 多个服务专用包 +- **测试**: Go 标准测试包 + Terraform 验收测试 +- **构建工具**: GNU Make, GolangCI-Lint, tfproviderlint +- **版本控制**: Git +- **包管理**: Go Modules (vendor 模式) + +## 项目规范 + +### 代码风格 +- **代码格式化**: 使用 `gofmt` 和 `goimports` 进行自动代码格式化 +- **代码检查**: 通过 golangci-lint 强制执行自定义配置 (.golangci.yml) + - 启用的检查器: errcheck, gofmt, ineffassign, misspell, unconvert, unused, vet + - 通过 tfproviderlint 进行 Terraform 特定检查 +- **命名规范**: + - 资源文件: `resource_tc__.go` + - 数据源文件: `data_source_tc__.go` + - 服务文件: `service_tencentcloud_.go` + - 函数命名: 导出函数使用大驼峰,内部函数使用小驼峰 + - Terraform 中的资源名: `tencentcloud__` +- **文件组织**: 服务按子目录组织在 `tencentcloud/services/` 下 +- **导入别名**: 公共包使用 `tccommon`,服务包使用 `svc` 格式 + +### 架构模式 +- **Provider 架构**: 遵循 Terraform Plugin SDK v2 模式 + - 资源 CRUD 操作: Create(创建), Read(读取), Update(更新), Delete(删除) + - 基于 Schema 的资源和数据源定义 + - 通过 Terraform SDK 进行状态管理 +- **服务层模式**: 每个腾讯云服务在 `tencentcloud/services/` 下有自己的包 + - 资源和数据源按服务分组 + - 共享服务客户端在 `service_tencentcloud_.go` 文件中 +- **错误处理**: + - 使用 `defer tccommon.LogElapsed()` 记录操作耗时 + - 使用 `defer tccommon.InconsistentCheck()` 进行状态一致性检查 + - 通过 `helper.Retry()` 实现最终一致性的重试逻辑 +- **常用模式**: + - 资源 ID 格式: 使用分隔符的复合 ID(例如:`instanceId#userId`) + - 使用 `helper` 包提供通用工具函数 + - 敏感字段在 schema 中标记 `Sensitive: true` + +### 测试策略 +- **验收测试**: 使用 `TF_ACC=1` 环境变量启用 + - 测试文件命名: `*_test.go` + - 测试函数命名: `TestAccTencentCloud_` + - 测试超时: 默认 120 分钟 +- **测试要求**: + - 设置 `TENCENTCLOUD_SECRET_ID` 和 `TENCENTCLOUD_SECRET_KEY` 环境变量 + - 设置 `TENCENTCLOUD_APPID` 用于 COS 存储桶测试 +- **清理测试**: 基础设施清理测试 (`make sweep`) +- **单元测试**: 标准 Go 测试,30 秒超时,4 路并行 +- **测试命令**: + - `make test`: 运行单元测试 + - `make testacc`: 运行验收测试 + - `make sweep`: 清理测试资源 + +### Git 工作流 +- **分支命名**: 功能分支命名(例如:`001-rabbitmq-user-permissions`) +- **提交规范**: 标准 Git 提交信息 +- **变更日志**: 在 `.changelog/` 目录中维护变更日志条目 + - 格式: `.txt` 文件 +- **开发流程**: + 1. 创建功能分支 + 2. 实现变更 + 3. 运行 `make fmt` 进行代码格式化 + 4. 运行 `make lint` 进行代码检查 + 5. 运行 `make doc` 生成文档 + 6. 运行测试 + 7. 提交并创建 PR + +## 领域上下文 +- **腾讯云服务**: Provider 覆盖 80+ 个腾讯云服务,包括: + - 计算: CVM(云服务器), AS(弹性伸缩), Lighthouse(轻量应用服务器) + - 存储: CBS(云硬盘), CFS(文件存储), COS(对象存储) + - 数据库: CDB(云数据库 MySQL), PostgreSQL, MongoDB, Redis, TencentDB 系列 + - 网络: VPC(私有网络), CLB(负载均衡), CCN(云联网), DC(专线接入), VPN + - 容器: TKE(容器服务), TCR(容器镜像服务), TCM(服务网格) + - 中间件: TDMQ (Pulsar/RabbitMQ/RocketMQ), CKafka(消息队列) + - 安全: CAM(访问管理), CFW(云防火墙), WAF(Web 应用防火墙), SSL(证书) + - 监控: Monitor(云监控), RUM(前端性能监控), CLS(日志服务) + - CDN(内容分发), API Gateway(API 网关), Serverless(无服务器)等更多服务 +- **资源生命周期**: 资源遵循 Terraform 生命周期(创建 → 读取 → 更新 → 删除 → 导入) +- **API 集成**: 通过 SDK 直接集成腾讯云 OpenAPI +- **重试与一致性**: 由于云 API 的最终一致性,许多操作需要重试逻辑 + +## 重要约束 +- **Go 版本**: 必须使用 Go 1.17+(在 go.mod 中指定) +- **Terraform 版本**: 兼容 Terraform 0.13.x 及以上版本 +- **Vendor 模式**: 依赖项通过 vendor 目录管理 +- **API 速率限制**: 腾讯云 API 速率限制可能影响操作 +- **向后兼容性**: 必须保持与现有 Terraform 配置的兼容性 +- **资源状态**: 资源必须正确处理 Terraform 状态管理 +- **SDK 版本**: 必须保持腾讯云 SDK 包版本同步 +- **文档**: 所有资源和数据源必须在 `website/docs/` 中有相应文档 + +## 外部依赖 +- **腾讯云 OpenAPI**: 所有云操作的主要依赖 + - 通过 Secret ID/Key 或 STS Token 认证 + - 区域端点服务访问 + - API 版本控制(例如:tdmq/v20200217) +- **Terraform Registry**: Provider 发布到 Terraform Registry `registry.terraform.io/tencentcloudstack/tencentcloud` +- **开发工具**: + - golangci-lint: 代码质量和检查 + - tfproviderlint: Terraform 特定检查 + - misspell: 拼写检查 + - terrafmt: 文档中的 HCL 格式化 +- **文档生成**: 自定义 `gendoc` 工具用于生成 Provider 文档 +- **CI/CD**: Travis CI 配置用于自动化测试和发布 diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index 0024e1a502..1e5cc9a77b 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -1864,6 +1864,7 @@ func Provider() *schema.Provider { "tencentcloud_tdmq_role": tpulsar.ResourceTencentCloudTdmqRole(), "tencentcloud_tdmq_namespace_role_attachment": tpulsar.ResourceTencentCloudTdmqNamespaceRoleAttachment(), "tencentcloud_tdmq_rabbitmq_user": trabbit.ResourceTencentCloudTdmqRabbitmqUser(), + "tencentcloud_tdmq_rabbitmq_user_permission": trabbit.ResourceTencentCloudTdmqRabbitmqUserPermission(), "tencentcloud_tdmq_rabbitmq_virtual_host": trabbit.ResourceTencentCloudTdmqRabbitmqVirtualHost(), "tencentcloud_tdmq_rabbitmq_vip_instance": trabbit.ResourceTencentCloudTdmqRabbitmqVipInstance(), "tencentcloud_tdmq_send_rocketmq_message": trocket.ResourceTencentCloudTdmqSendRocketmqMessage(), diff --git a/tencentcloud/provider.md b/tencentcloud/provider.md index d7ef784a65..a5046c5fd8 100644 --- a/tencentcloud/provider.md +++ b/tencentcloud/provider.md @@ -1907,6 +1907,7 @@ tencentcloud_trocket_rocketmq_role TDMQ for RabbitMQ(trabbit) Resource tencentcloud_tdmq_rabbitmq_user +tencentcloud_tdmq_rabbitmq_user_permission tencentcloud_tdmq_rabbitmq_virtual_host tencentcloud_tdmq_rabbitmq_vip_instance diff --git a/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go b/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go index f140ed967a..acfb69e963 100644 --- a/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go +++ b/tencentcloud/services/tdmq/service_tencentcloud_tdmq.go @@ -1161,59 +1161,6 @@ func (me *TdmqService) DeleteTdmqSubscriptionById(ctx context.Context, clusterId return } -func (me *TdmqService) DescribeTdmqDeadLetterSourceQueueByFilter(ctx context.Context, param map[string]interface{}) (deadLetterSourceQueue []*tdmq.CmqDeadLetterSource, errRet error) { - var ( - logId = tccommon.GetLogId(ctx) - request = tdmq.NewDescribeCmqDeadLetterSourceQueuesRequest() - ) - - defer func() { - if errRet != nil { - log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) - } - }() - - for k, v := range param { - if k == "DeadLetterQueueName" { - request.DeadLetterQueueName = v.(*string) - } - if k == "SourceQueueName" { - request.SourceQueueName = v.(*string) - } - } - - ratelimit.Check(request.GetAction()) - - var ( - offset uint64 = 0 - limit uint64 = 20 - ) - for { - request.Offset = &offset - request.Limit = &limit - response, err := me.client.UseTdmqClient().DescribeCmqDeadLetterSourceQueues(request) - if err != nil { - errRet = err - return - } - - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) - - if response == nil || *response.Response.TotalCount == 0 { - break - } - - deadLetterSourceQueue = append(deadLetterSourceQueue, response.Response.QueueSet...) - if len(response.Response.QueueSet) < int(limit) { - break - } - - offset += limit - } - - return -} - func (me *TdmqService) DescribeTdmqRabbitmqNodeListByFilter(ctx context.Context, param map[string]interface{}) (rabbitmqNodeList []*tdmq.RabbitMQPrivateNode, errRet error) { var ( logId = tccommon.GetLogId(ctx) @@ -1501,57 +1448,6 @@ func (me *TdmqService) DescribeTdmqMessageByFilter(ctx context.Context, param ma return } -func (me *TdmqService) DescribeTdmqRabbitmqVirtualHostListByFilter(ctx context.Context, param map[string]interface{}) (rabbitmqVirtualHostList []*tdmq.RabbitMQPrivateVirtualHost, errRet error) { - var ( - logId = tccommon.GetLogId(ctx) - request = tdmq.NewDescribeRabbitMQVirtualHostListRequest() - ) - - defer func() { - if errRet != nil { - log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) - } - }() - - for k, v := range param { - if k == "InstanceId" { - request.InstanceId = v.(*string) - } - } - - ratelimit.Check(request.GetAction()) - - var ( - offset uint64 = 0 - limit uint64 = 20 - ) - - for { - request.Offset = &offset - request.Limit = &limit - response, err := me.client.UseTdmqClient().DescribeRabbitMQVirtualHostList(request) - if err != nil { - errRet = err - return - } - - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) - - if response == nil || len(response.Response.VirtualHostList) < 1 { - break - } - - rabbitmqVirtualHostList = append(rabbitmqVirtualHostList, response.Response.VirtualHostList...) - if len(response.Response.VirtualHostList) < int(limit) { - break - } - - offset += limit - } - - return -} - func (me *TdmqService) DescribeTdmqRabbitmqUserById(ctx context.Context, instanceId, user string) (rabbitmqUser *tdmq.RabbitMQUser, errRet error) { logId := tccommon.GetLogId(ctx) request := tdmq.NewDescribeRabbitMQUserRequest() @@ -1743,6 +1639,90 @@ func (me *TdmqService) DeleteTdmqRabbitmqVipInstanceById(ctx context.Context, in return } +func (me *TdmqService) DescribeTdmqRabbitmqPermissionById(ctx context.Context, instanceId, user, virtualHost string) (rabbitmqPermission *tdmq.RabbitMQPermission, errRet error) { + logId := tccommon.GetLogId(ctx) + + request := tdmq.NewDescribeRabbitMQPermissionRequest() + request.InstanceId = &instanceId + if user != "" { + request.User = &user + } + if virtualHost != "" { + request.VirtualHost = &virtualHost + } + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + var response *tdmq.DescribeRabbitMQPermissionResponse + err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, e := me.client.UseTdmqClient().DescribeRabbitMQPermission(request) + if e != nil { + return tccommon.RetryError(e, tccommon.InternalError) + } + response = result + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s read tdmq rabbitmq permission failed, reason: %v", logId, err) + errRet = err + return + } + + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + + if len(response.Response.RabbitMQPermissionList) < 1 { + return + } + + for _, permission := range response.Response.RabbitMQPermissionList { + if *permission.User == user && *permission.VirtualHost == virtualHost { + rabbitmqPermission = permission + break + } + } + + return +} + +func (me *TdmqService) DeleteTdmqRabbitmqPermissionById(ctx context.Context, instanceId, user, virtualHost string) (errRet error) { + logId := tccommon.GetLogId(ctx) + + request := tdmq.NewDeleteRabbitMQPermissionRequest() + request.InstanceId = &instanceId + request.User = &user + request.VirtualHost = &virtualHost + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + ratelimit.Check(request.GetAction()) + result, e := me.client.UseTdmqClient().DeleteRabbitMQPermission(request) + if e != nil { + return tccommon.RetryError(e, tccommon.InternalError) + } + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s delete tdmq rabbitmq permission failed, reason: %v", logId, err) + errRet = err + return + } + + return +} + func (me *TdmqService) DescribeTdmqRocketmqVipInstanceById(ctx context.Context, clusterId string) (rocketmqVipInstanceDetail *tdmq.DescribeRocketMQVipInstanceDetailResponseParams, errRet error) { logId := tccommon.GetLogId(ctx) request := tdmq.NewDescribeRocketMQVipInstanceDetailRequest() diff --git a/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.go b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.go new file mode 100644 index 0000000000..0d1365a3ce --- /dev/null +++ b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.go @@ -0,0 +1,261 @@ +package trabbit + +import ( + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + svctdmq "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/tdmq" + + "context" + "fmt" + "log" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + tdmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217" + + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func ResourceTencentCloudTdmqRabbitmqUserPermission() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudTdmqRabbitmqUserPermissionCreate, + Read: resourceTencentCloudTdmqRabbitmqUserPermissionRead, + Update: resourceTencentCloudTdmqRabbitmqUserPermissionUpdate, + Delete: resourceTencentCloudTdmqRabbitmqUserPermissionDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ + "instance_id": { + Required: true, + Type: schema.TypeString, + ForceNew: true, + Description: "Cluster instance ID.", + }, + "user": { + Required: true, + Type: schema.TypeString, + ForceNew: true, + Description: "Username.", + }, + "virtual_host": { + Required: true, + Type: schema.TypeString, + ForceNew: true, + Description: "VirtualHost name.", + }, + "config_regexp": { + Required: true, + Type: schema.TypeString, + Description: "Configure permission regexp, controls which resources can be declared.", + }, + "write_regexp": { + Required: true, + Type: schema.TypeString, + Description: "Write permission regexp, controls which resources can be written.", + }, + "read_regexp": { + Required: true, + Type: schema.TypeString, + Description: "Read permission regexp, controls which resources can be read.", + }, + }, + } +} + +func resourceTencentCloudTdmqRabbitmqUserPermissionCreate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_tdmq_rabbitmq_user_permission.create")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + request = tdmq.NewModifyRabbitMQPermissionRequest() + instanceId string + user string + virtualHost string + ) + + if v, ok := d.GetOk("instance_id"); ok { + request.InstanceId = helper.String(v.(string)) + instanceId = v.(string) + } + + if v, ok := d.GetOk("user"); ok { + request.User = helper.String(v.(string)) + user = v.(string) + } + + if v, ok := d.GetOk("virtual_host"); ok { + request.VirtualHost = helper.String(v.(string)) + virtualHost = v.(string) + } + + if v, ok := d.GetOk("config_regexp"); ok { + request.ConfigRegexp = helper.String(v.(string)) + } + + if v, ok := d.GetOk("write_regexp"); ok { + request.WriteRegexp = helper.String(v.(string)) + } + + if v, ok := d.GetOk("read_regexp"); ok { + request.ReadRegexp = helper.String(v.(string)) + } + + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTdmqClient().ModifyRabbitMQPermission(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s create tdmq rabbitmqUserPermission failed, reason:%+v", logId, err) + return err + } + + d.SetId(strings.Join([]string{instanceId, user, virtualHost}, tccommon.FILED_SP)) + + return resourceTencentCloudTdmqRabbitmqUserPermissionRead(d, meta) +} + +func resourceTencentCloudTdmqRabbitmqUserPermissionRead(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_tdmq_rabbitmq_user_permission.read")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + service = svctdmq.NewTdmqService(meta.(tccommon.ProviderMeta).GetAPIV3Conn()) + ) + + idSplit := strings.Split(d.Id(), tccommon.FILED_SP) + if len(idSplit) != 3 { + return fmt.Errorf("id is broken,%s", idSplit) + } + instanceId := idSplit[0] + user := idSplit[1] + virtualHost := idSplit[2] + + rabbitmqPermission, err := service.DescribeTdmqRabbitmqPermissionById(ctx, instanceId, user, virtualHost) + if err != nil { + return err + } + + if rabbitmqPermission == nil { + d.SetId("") + log.Printf("[WARN]%s resource `TdmqRabbitmqUserPermission` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + return nil + } + + if rabbitmqPermission.InstanceId != nil { + _ = d.Set("instance_id", rabbitmqPermission.InstanceId) + } + + if rabbitmqPermission.User != nil { + _ = d.Set("user", rabbitmqPermission.User) + } + + if rabbitmqPermission.VirtualHost != nil { + _ = d.Set("virtual_host", rabbitmqPermission.VirtualHost) + } + + if rabbitmqPermission.ConfigRegexp != nil { + _ = d.Set("config_regexp", rabbitmqPermission.ConfigRegexp) + } + + if rabbitmqPermission.WriteRegexp != nil { + _ = d.Set("write_regexp", rabbitmqPermission.WriteRegexp) + } + + if rabbitmqPermission.ReadRegexp != nil { + _ = d.Set("read_regexp", rabbitmqPermission.ReadRegexp) + } + + return nil +} + +func resourceTencentCloudTdmqRabbitmqUserPermissionUpdate(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_tdmq_rabbitmq_user_permission.update")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + request = tdmq.NewModifyRabbitMQPermissionRequest() + ) + + idSplit := strings.Split(d.Id(), tccommon.FILED_SP) + if len(idSplit) != 3 { + return fmt.Errorf("id is broken,%s", idSplit) + } + + instanceId := idSplit[0] + user := idSplit[1] + virtualHost := idSplit[2] + + if d.HasChange("config_regexp") || d.HasChange("write_regexp") || d.HasChange("read_regexp") { + request.InstanceId = &instanceId + request.User = &user + request.VirtualHost = &virtualHost + + if v, ok := d.GetOk("config_regexp"); ok { + request.ConfigRegexp = helper.String(v.(string)) + } + + if v, ok := d.GetOk("write_regexp"); ok { + request.WriteRegexp = helper.String(v.(string)) + } + + if v, ok := d.GetOk("read_regexp"); ok { + request.ReadRegexp = helper.String(v.(string)) + } + + err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError { + result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseTdmqClient().ModifyRabbitMQPermission(request) + if e != nil { + return tccommon.RetryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s update tdmq rabbitmqUserPermission failed, reason:%+v", logId, err) + return err + } + } + + return resourceTencentCloudTdmqRabbitmqUserPermissionRead(d, meta) +} + +func resourceTencentCloudTdmqRabbitmqUserPermissionDelete(d *schema.ResourceData, meta interface{}) error { + defer tccommon.LogElapsed("resource.tencentcloud_tdmq_rabbitmq_user_permission.delete")() + defer tccommon.InconsistentCheck(d, meta)() + + var ( + logId = tccommon.GetLogId(tccommon.ContextNil) + ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + service = svctdmq.NewTdmqService(meta.(tccommon.ProviderMeta).GetAPIV3Conn()) + ) + + idSplit := strings.Split(d.Id(), tccommon.FILED_SP) + if len(idSplit) != 3 { + return fmt.Errorf("id is broken,%s", idSplit) + } + + instanceId := idSplit[0] + user := idSplit[1] + virtualHost := idSplit[2] + + if err := service.DeleteTdmqRabbitmqPermissionById(ctx, instanceId, user, virtualHost); err != nil { + return err + } + + return nil +} diff --git a/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.md b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.md new file mode 100644 index 0000000000..d16ef749fd --- /dev/null +++ b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission.md @@ -0,0 +1,54 @@ +Provides a resource to create a tdmq rabbitmq_user_permission + +Example Usage + +```hcl +# create rabbitmq instance +resource "tencentcloud_tdmq_rabbitmq_vip_instance" "example" { + zone_ids = [var.availability_zone] + vpc_id = var.vpc_id + subnet_id = var.subnet_id + cluster_name = "tf-example-rabbitmq" + node_spec = "rabbit-vip-basic-1" + node_num = 1 + storage_size = 200 + enable_create_default_ha_mirror_queue = false + auto_renew_flag = true + time_span = 1 +} + +# create rabbitmq user +resource "tencentcloud_tdmq_rabbitmq_user" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = "tf-example-user" + password = "Password@123" + description = "test user" + tags = ["management"] +} + +# create virtual host +resource "tencentcloud_tdmq_rabbitmq_virtual_host" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + virtual_host = "tf-example-vhost" + description = "test virtual host" + trace_flag = false +} + +# create user permission +resource "tencentcloud_tdmq_rabbitmq_user_permission" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = tencentcloud_tdmq_rabbitmq_user.example.user + virtual_host = tencentcloud_tdmq_rabbitmq_virtual_host.example.virtual_host + config_regexp = ".*" + write_regexp = ".*" + read_regexp = ".*" +} +``` + +Import + +tdmq rabbitmq_user_permission can be imported using the id, e.g. + +``` +terraform import tencentcloud_tdmq_rabbitmq_user_permission.example amqp-xxxxxxxx#user#vhost +``` diff --git a/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission_test.go b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission_test.go new file mode 100644 index 0000000000..397e61e235 --- /dev/null +++ b/tencentcloud/services/trabbit/resource_tc_tdmq_rabbitmq_user_permission_test.go @@ -0,0 +1,243 @@ +package trabbit_test + +import ( + "context" + "fmt" + "strings" + "testing" + + tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest" + tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common" + svctdmq "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/services/tdmq" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" +) + +// go test -i; go test -test.run TestAccTencentCloudTdmqRabbitmqUserPermissionResource_basic -v +func TestAccTencentCloudTdmqRabbitmqUserPermissionResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + tcacctest.AccPreCheck(t) + }, + Providers: tcacctest.AccProviders, + CheckDestroy: testAccCheckTdmqRabbitmqUserPermissionDestroy, + Steps: []resource.TestStep{ + { + Config: testAccTdmqRabbitmqUserPermission, + Check: resource.ComposeTestCheckFunc( + testAccCheckTdmqRabbitmqUserPermissionExists("tencentcloud_tdmq_rabbitmq_user_permission.example"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "instance_id"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "user"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "virtual_host"), + resource.TestCheckResourceAttr("tencentcloud_tdmq_rabbitmq_user_permission.example", "config_regexp", ".*"), + resource.TestCheckResourceAttr("tencentcloud_tdmq_rabbitmq_user_permission.example", "write_regexp", ".*"), + resource.TestCheckResourceAttr("tencentcloud_tdmq_rabbitmq_user_permission.example", "read_regexp", ".*"), + ), + }, + { + ResourceName: "tencentcloud_tdmq_rabbitmq_user_permission.example", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccTdmqRabbitmqUserPermissionUpdate, + Check: resource.ComposeTestCheckFunc( + testAccCheckTdmqRabbitmqUserPermissionExists("tencentcloud_tdmq_rabbitmq_user_permission.example"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "id"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "instance_id"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "user"), + resource.TestCheckResourceAttrSet("tencentcloud_tdmq_rabbitmq_user_permission.example", "virtual_host"), + resource.TestCheckResourceAttr("tencentcloud_tdmq_rabbitmq_user_permission.example", "config_regexp", "^tf-.*"), + resource.TestCheckResourceAttr("tencentcloud_tdmq_rabbitmq_user_permission.example", "write_regexp", "^tf-.*"), + resource.TestCheckResourceAttr("tencentcloud_tdmq_rabbitmq_user_permission.example", "read_regexp", "^tf-.*"), + ), + }, + }, + }) +} + +func testAccCheckTdmqRabbitmqUserPermissionDestroy(s *terraform.State) error { + logId := tccommon.GetLogId(tccommon.ContextNil) + ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + service := svctdmq.NewTdmqService(tcacctest.AccProvider.Meta().(tccommon.ProviderMeta).GetAPIV3Conn()) + for _, rs := range s.RootModule().Resources { + if rs.Type != "tencentcloud_tdmq_rabbitmq_user_permission" { + continue + } + + idSplit := strings.Split(rs.Primary.ID, tccommon.FILED_SP) + if len(idSplit) != 3 { + return fmt.Errorf("id is broken,%s", idSplit) + } + instanceId := idSplit[0] + user := idSplit[1] + virtualHost := idSplit[2] + + permission, err := service.DescribeTdmqRabbitmqPermissionById(ctx, instanceId, user, virtualHost) + if permission != nil { + return fmt.Errorf("tdmq rabbitmqUserPermission %s still exists", rs.Primary.ID) + } + if err != nil { + return err + } + } + return nil +} + +func testAccCheckTdmqRabbitmqUserPermissionExists(r string) resource.TestCheckFunc { + return func(s *terraform.State) error { + logId := tccommon.GetLogId(tccommon.ContextNil) + ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId) + + rs, ok := s.RootModule().Resources[r] + if !ok { + return fmt.Errorf("resource %s is not found", r) + } + + idSplit := strings.Split(rs.Primary.ID, tccommon.FILED_SP) + if len(idSplit) != 3 { + return fmt.Errorf("id is broken,%s", idSplit) + } + instanceId := idSplit[0] + user := idSplit[1] + virtualHost := idSplit[2] + + service := svctdmq.NewTdmqService(tcacctest.AccProvider.Meta().(tccommon.ProviderMeta).GetAPIV3Conn()) + permission, err := service.DescribeTdmqRabbitmqPermissionById(ctx, instanceId, user, virtualHost) + if permission == nil { + return fmt.Errorf("tdmq rabbitmqUserPermission %s is not found", rs.Primary.ID) + } + if err != nil { + return err + } + + return nil + } +} + +const testAccTdmqRabbitmqUserPermission = ` +data "tencentcloud_availability_zones" "zones" { + name = "ap-guangzhou-6" +} + +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create rabbitmq instance +resource "tencentcloud_tdmq_rabbitmq_vip_instance" "example" { + zone_ids = [data.tencentcloud_availability_zones.zones.zones.0.id] + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + cluster_name = "tf-example-rabbitmq-permission" + node_spec = "rabbit-vip-basic-1" + node_num = 1 + storage_size = 200 + enable_create_default_ha_mirror_queue = false + auto_renew_flag = true + time_span = 1 +} + +# create rabbitmq user +resource "tencentcloud_tdmq_rabbitmq_user" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = "tf-example-user" + password = "Password@123" + description = "test user" + tags = ["management"] +} + +# create virtual host +resource "tencentcloud_tdmq_rabbitmq_virtual_host" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + virtual_host = "tf-example-vhost" + description = "test virtual host" + trace_flag = false +} + +# create user permission +resource "tencentcloud_tdmq_rabbitmq_user_permission" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = tencentcloud_tdmq_rabbitmq_user.example.user + virtual_host = tencentcloud_tdmq_rabbitmq_virtual_host.example.virtual_host + config_regexp = ".*" + write_regexp = ".*" + read_regexp = ".*" +} +` + +const testAccTdmqRabbitmqUserPermissionUpdate = ` +data "tencentcloud_availability_zones" "zones" { + name = "ap-guangzhou-6" +} + +# create vpc +resource "tencentcloud_vpc" "vpc" { + name = "vpc" + cidr_block = "10.0.0.0/16" +} + +# create vpc subnet +resource "tencentcloud_subnet" "subnet" { + name = "subnet" + vpc_id = tencentcloud_vpc.vpc.id + availability_zone = "ap-guangzhou-6" + cidr_block = "10.0.20.0/28" + is_multicast = false +} + +# create rabbitmq instance +resource "tencentcloud_tdmq_rabbitmq_vip_instance" "example" { + zone_ids = [data.tencentcloud_availability_zones.zones.zones.0.id] + vpc_id = tencentcloud_vpc.vpc.id + subnet_id = tencentcloud_subnet.subnet.id + cluster_name = "tf-example-rabbitmq-permission" + node_spec = "rabbit-vip-basic-1" + node_num = 1 + storage_size = 200 + enable_create_default_ha_mirror_queue = false + auto_renew_flag = true + time_span = 1 +} + +# create rabbitmq user +resource "tencentcloud_tdmq_rabbitmq_user" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = "tf-example-user" + password = "Password@123" + description = "test user" + tags = ["management"] +} + +# create virtual host +resource "tencentcloud_tdmq_rabbitmq_virtual_host" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + virtual_host = "tf-example-vhost" + description = "test virtual host" + trace_flag = false +} + +# create user permission (updated) +resource "tencentcloud_tdmq_rabbitmq_user_permission" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = tencentcloud_tdmq_rabbitmq_user.example.user + virtual_host = tencentcloud_tdmq_rabbitmq_virtual_host.example.virtual_host + config_regexp = "^tf-.*" + write_regexp = "^tf-.*" + read_regexp = "^tf-.*" +} +` diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/client.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/client.go index a85ab07d0b..25e19c1e0b 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/client.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/client.go @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. +// Copyright (c) 2017-2025 Tencent. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -100,6 +100,7 @@ func (c *Client) AcknowledgeMessageWithContext(ctx context.Context, request *Ack if request == nil { request = NewAcknowledgeMessageRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "AcknowledgeMessage") if c.GetCredential() == nil { return nil, errors.New("AcknowledgeMessage require credential") @@ -153,6 +154,7 @@ func (c *Client) ClearCmqQueueWithContext(ctx context.Context, request *ClearCmq if request == nil { request = NewClearCmqQueueRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ClearCmqQueue") if c.GetCredential() == nil { return nil, errors.New("ClearCmqQueue require credential") @@ -202,6 +204,7 @@ func (c *Client) ClearCmqSubscriptionFilterTagsWithContext(ctx context.Context, if request == nil { request = NewClearCmqSubscriptionFilterTagsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ClearCmqSubscriptionFilterTags") if c.GetCredential() == nil { return nil, errors.New("ClearCmqSubscriptionFilterTags require credential") @@ -269,6 +272,7 @@ func (c *Client) CreateClusterWithContext(ctx context.Context, request *CreateCl if request == nil { request = NewCreateClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateCluster") if c.GetCredential() == nil { return nil, errors.New("CreateCluster require credential") @@ -342,6 +346,7 @@ func (c *Client) CreateCmqQueueWithContext(ctx context.Context, request *CreateC if request == nil { request = NewCreateCmqQueueRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateCmqQueue") if c.GetCredential() == nil { return nil, errors.New("CreateCmqQueue require credential") @@ -403,6 +408,7 @@ func (c *Client) CreateCmqSubscribeWithContext(ctx context.Context, request *Cre if request == nil { request = NewCreateCmqSubscribeRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateCmqSubscribe") if c.GetCredential() == nil { return nil, errors.New("CreateCmqSubscribe require credential") @@ -476,6 +482,7 @@ func (c *Client) CreateCmqTopicWithContext(ctx context.Context, request *CreateC if request == nil { request = NewCreateCmqTopicRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateCmqTopic") if c.GetCredential() == nil { return nil, errors.New("CreateCmqTopic require credential") @@ -513,8 +520,12 @@ func NewCreateEnvironmentResponse() (response *CreateEnvironmentResponse) { // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATEENVIRONMENT = "FailedOperation.CreateEnvironment" // FAILEDOPERATION_CREATENAMESPACE = "FailedOperation.CreateNamespace" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_REPLICATIONDESTCHECKFAILEDERROR = "FailedOperation.ReplicationDestCheckFailedError" +// FAILEDOPERATION_REPLICATIONSOURCECHECKFAILEDERROR = "FailedOperation.ReplicationSourceCheckFailedError" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // INVALIDPARAMETERVALUE_TTL = "InvalidParameterValue.TTL" @@ -537,8 +548,12 @@ func (c *Client) CreateEnvironment(request *CreateEnvironmentRequest) (response // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATEENVIRONMENT = "FailedOperation.CreateEnvironment" // FAILEDOPERATION_CREATENAMESPACE = "FailedOperation.CreateNamespace" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_REPLICATIONDESTCHECKFAILEDERROR = "FailedOperation.ReplicationDestCheckFailedError" +// FAILEDOPERATION_REPLICATIONSOURCECHECKFAILEDERROR = "FailedOperation.ReplicationSourceCheckFailedError" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // INVALIDPARAMETERVALUE_TTL = "InvalidParameterValue.TTL" @@ -555,6 +570,7 @@ func (c *Client) CreateEnvironmentWithContext(ctx context.Context, request *Crea if request == nil { request = NewCreateEnvironmentRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateEnvironment") if c.GetCredential() == nil { return nil, errors.New("CreateEnvironment require credential") @@ -592,7 +608,9 @@ func NewCreateEnvironmentRoleResponse() (response *CreateEnvironmentRoleResponse // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATEENVIRONMENTROLE = "FailedOperation.CreateEnvironmentRole" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_UPDATEENVIRONMENTROLE = "FailedOperation.UpdateEnvironmentRole" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" @@ -611,7 +629,9 @@ func (c *Client) CreateEnvironmentRole(request *CreateEnvironmentRoleRequest) (r // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATEENVIRONMENTROLE = "FailedOperation.CreateEnvironmentRole" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_UPDATEENVIRONMENTROLE = "FailedOperation.UpdateEnvironmentRole" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" @@ -624,6 +644,7 @@ func (c *Client) CreateEnvironmentRoleWithContext(ctx context.Context, request * if request == nil { request = NewCreateEnvironmentRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateEnvironmentRole") if c.GetCredential() == nil { return nil, errors.New("CreateEnvironmentRole require credential") @@ -659,17 +680,12 @@ func NewCreateProClusterResponse() (response *CreateProClusterResponse) { // 创建专业集群——预付费,仅通过api调用 // // 可能返回的错误码: -// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" -// FAILEDOPERATION = "FailedOperation" -// FAILEDOPERATION_CREATEENVIRONMENTROLE = "FailedOperation.CreateEnvironmentRole" -// FAILEDOPERATION_UPDATEENVIRONMENTROLE = "FailedOperation.UpdateEnvironmentRole" -// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" -// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" -// RESOURCEINUSE = "ResourceInUse" -// RESOURCEINUSE_ENVIRONMENTROLE = "ResourceInUse.EnvironmentRole" -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" -// RESOURCENOTFOUND_ROLE = "ResourceNotFound.Role" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_GENERATEDEALSANDPAYERROR = "FailedOperation.GenerateDealsAndPayError" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_PRODUCTNOTEXIST = "FailedOperation.ProductNotExist" +// INVALIDPARAMETER_VPC = "InvalidParameter.Vpc" +// MISSINGPARAMETER_TAG = "MissingParameter.Tag" func (c *Client) CreateProCluster(request *CreateProClusterRequest) (response *CreateProClusterResponse, err error) { return c.CreateProClusterWithContext(context.Background(), request) } @@ -678,21 +694,17 @@ func (c *Client) CreateProCluster(request *CreateProClusterRequest) (response *C // 创建专业集群——预付费,仅通过api调用 // // 可能返回的错误码: -// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" -// FAILEDOPERATION = "FailedOperation" -// FAILEDOPERATION_CREATEENVIRONMENTROLE = "FailedOperation.CreateEnvironmentRole" -// FAILEDOPERATION_UPDATEENVIRONMENTROLE = "FailedOperation.UpdateEnvironmentRole" -// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" -// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" -// RESOURCEINUSE = "ResourceInUse" -// RESOURCEINUSE_ENVIRONMENTROLE = "ResourceInUse.EnvironmentRole" -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" -// RESOURCENOTFOUND_ROLE = "ResourceNotFound.Role" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_GENERATEDEALSANDPAYERROR = "FailedOperation.GenerateDealsAndPayError" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_PRODUCTNOTEXIST = "FailedOperation.ProductNotExist" +// INVALIDPARAMETER_VPC = "InvalidParameter.Vpc" +// MISSINGPARAMETER_TAG = "MissingParameter.Tag" func (c *Client) CreateProClusterWithContext(ctx context.Context, request *CreateProClusterRequest) (response *CreateProClusterResponse, err error) { if request == nil { request = NewCreateProClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateProCluster") if c.GetCredential() == nil { return nil, errors.New("CreateProCluster require credential") @@ -705,6 +717,60 @@ func (c *Client) CreateProClusterWithContext(ctx context.Context, request *Creat return } +func NewCreateRabbitMQBindingRequest() (request *CreateRabbitMQBindingRequest) { + request = &CreateRabbitMQBindingRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "CreateRabbitMQBinding") + + + return +} + +func NewCreateRabbitMQBindingResponse() (response *CreateRabbitMQBindingResponse) { + response = &CreateRabbitMQBindingResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// CreateRabbitMQBinding +// 创建RabbitMQ路由关系 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) CreateRabbitMQBinding(request *CreateRabbitMQBindingRequest) (response *CreateRabbitMQBindingResponse, err error) { + return c.CreateRabbitMQBindingWithContext(context.Background(), request) +} + +// CreateRabbitMQBinding +// 创建RabbitMQ路由关系 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) CreateRabbitMQBindingWithContext(ctx context.Context, request *CreateRabbitMQBindingRequest) (response *CreateRabbitMQBindingResponse, err error) { + if request == nil { + request = NewCreateRabbitMQBindingRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRabbitMQBinding") + + if c.GetCredential() == nil { + return nil, errors.New("CreateRabbitMQBinding require credential") + } + + request.SetContext(ctx) + + response = NewCreateRabbitMQBindingResponse() + err = c.Send(request, response) + return +} + func NewCreateRabbitMQUserRequest() (request *CreateRabbitMQUserRequest) { request = &CreateRabbitMQUserRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -746,6 +812,7 @@ func (c *Client) CreateRabbitMQUserWithContext(ctx context.Context, request *Cre if request == nil { request = NewCreateRabbitMQUserRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRabbitMQUser") if c.GetCredential() == nil { return nil, errors.New("CreateRabbitMQUser require credential") @@ -778,7 +845,7 @@ func NewCreateRabbitMQVipInstanceResponse() (response *CreateRabbitMQVipInstance } // CreateRabbitMQVipInstance -// 创建RabbitMQ专享版实例 +// 创建 RabbitMQ 托管版实例 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -789,7 +856,7 @@ func (c *Client) CreateRabbitMQVipInstance(request *CreateRabbitMQVipInstanceReq } // CreateRabbitMQVipInstance -// 创建RabbitMQ专享版实例 +// 创建 RabbitMQ 托管版实例 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -799,6 +866,7 @@ func (c *Client) CreateRabbitMQVipInstanceWithContext(ctx context.Context, reque if request == nil { request = NewCreateRabbitMQVipInstanceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRabbitMQVipInstance") if c.GetCredential() == nil { return nil, errors.New("CreateRabbitMQVipInstance require credential") @@ -852,6 +920,7 @@ func (c *Client) CreateRabbitMQVirtualHostWithContext(ctx context.Context, reque if request == nil { request = NewCreateRabbitMQVirtualHostRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRabbitMQVirtualHost") if c.GetCredential() == nil { return nil, errors.New("CreateRabbitMQVirtualHost require credential") @@ -923,6 +992,7 @@ func (c *Client) CreateRocketMQClusterWithContext(ctx context.Context, request * if request == nil { request = NewCreateRocketMQClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRocketMQCluster") if c.GetCredential() == nil { return nil, errors.New("CreateRocketMQCluster require credential") @@ -992,6 +1062,7 @@ func (c *Client) CreateRocketMQEnvironmentRoleWithContext(ctx context.Context, r if request == nil { request = NewCreateRocketMQEnvironmentRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRocketMQEnvironmentRole") if c.GetCredential() == nil { return nil, errors.New("CreateRocketMQEnvironmentRole require credential") @@ -1053,6 +1124,7 @@ func (c *Client) CreateRocketMQGroupWithContext(ctx context.Context, request *Cr if request == nil { request = NewCreateRocketMQGroupRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRocketMQGroup") if c.GetCredential() == nil { return nil, errors.New("CreateRocketMQGroup require credential") @@ -1124,6 +1196,7 @@ func (c *Client) CreateRocketMQNamespaceWithContext(ctx context.Context, request if request == nil { request = NewCreateRocketMQNamespaceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRocketMQNamespace") if c.GetCredential() == nil { return nil, errors.New("CreateRocketMQNamespace require credential") @@ -1195,6 +1268,7 @@ func (c *Client) CreateRocketMQRoleWithContext(ctx context.Context, request *Cre if request == nil { request = NewCreateRocketMQRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRocketMQRole") if c.GetCredential() == nil { return nil, errors.New("CreateRocketMQRole require credential") @@ -1266,6 +1340,7 @@ func (c *Client) CreateRocketMQTopicWithContext(ctx context.Context, request *Cr if request == nil { request = NewCreateRocketMQTopicRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRocketMQTopic") if c.GetCredential() == nil { return nil, errors.New("CreateRocketMQTopic require credential") @@ -1315,6 +1390,7 @@ func (c *Client) CreateRocketMQVipInstanceWithContext(ctx context.Context, reque if request == nil { request = NewCreateRocketMQVipInstanceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRocketMQVipInstance") if c.GetCredential() == nil { return nil, errors.New("CreateRocketMQVipInstance require credential") @@ -1388,6 +1464,7 @@ func (c *Client) CreateRoleWithContext(ctx context.Context, request *CreateRoleR if request == nil { request = NewCreateRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateRole") if c.GetCredential() == nil { return nil, errors.New("CreateRole require credential") @@ -1425,8 +1502,12 @@ func NewCreateSubscriptionResponse() (response *CreateSubscriptionResponse) { // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATESUBSCRIPTION = "FailedOperation.CreateSubscription" // FAILEDOPERATION_GETTOPICPARTITIONSFAILED = "FailedOperation.GetTopicPartitionsFailed" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_REPLICATIONDESTCHECKFAILEDERROR = "FailedOperation.ReplicationDestCheckFailedError" +// FAILEDOPERATION_REPLICATIONSOURCECHECKFAILEDERROR = "FailedOperation.ReplicationSourceCheckFailedError" // INTERNALERROR_RETRY = "InternalError.Retry" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" @@ -1447,8 +1528,12 @@ func (c *Client) CreateSubscription(request *CreateSubscriptionRequest) (respons // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATESUBSCRIPTION = "FailedOperation.CreateSubscription" // FAILEDOPERATION_GETTOPICPARTITIONSFAILED = "FailedOperation.GetTopicPartitionsFailed" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_REPLICATIONDESTCHECKFAILEDERROR = "FailedOperation.ReplicationDestCheckFailedError" +// FAILEDOPERATION_REPLICATIONSOURCECHECKFAILEDERROR = "FailedOperation.ReplicationSourceCheckFailedError" // INTERNALERROR_RETRY = "InternalError.Retry" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" @@ -1463,6 +1548,7 @@ func (c *Client) CreateSubscriptionWithContext(ctx context.Context, request *Cre if request == nil { request = NewCreateSubscriptionRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateSubscription") if c.GetCredential() == nil { return nil, errors.New("CreateSubscription require credential") @@ -1500,9 +1586,15 @@ func NewCreateTopicResponse() (response *CreateTopicResponse) { // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATETOPIC = "FailedOperation.CreateTopic" +// FAILEDOPERATION_ISOLATECONSUMERENABLE = "FailedOperation.IsolateConsumerEnable" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_REPLICATIONDESTCHECKFAILEDERROR = "FailedOperation.ReplicationDestCheckFailedError" +// FAILEDOPERATION_REPLICATIONSOURCECHECKFAILEDERROR = "FailedOperation.ReplicationSourceCheckFailedError" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE = "InvalidParameterValue" +// INVALIDPARAMETERVALUE_ACKTIME = "InvalidParameterValue.AckTime" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // LIMITEXCEEDED_TOPICS = "LimitExceeded.Topics" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" @@ -1512,6 +1604,8 @@ func NewCreateTopicResponse() (response *CreateTopicResponse) { // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" // RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" // RESOURCEUNAVAILABLE_FUNDREQUIRED = "ResourceUnavailable.FundRequired" +// UNKNOWNPARAMETER_POLICY = "UnknownParameter.Policy" +// UNSUPPORTEDOPERATION_TOPICUNACK = "UnsupportedOperation.TopicUnack" func (c *Client) CreateTopic(request *CreateTopicRequest) (response *CreateTopicResponse, err error) { return c.CreateTopicWithContext(context.Background(), request) } @@ -1522,9 +1616,15 @@ func (c *Client) CreateTopic(request *CreateTopicRequest) (response *CreateTopic // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_CREATETOPIC = "FailedOperation.CreateTopic" +// FAILEDOPERATION_ISOLATECONSUMERENABLE = "FailedOperation.IsolateConsumerEnable" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_REPLICATIONDESTCHECKFAILEDERROR = "FailedOperation.ReplicationDestCheckFailedError" +// FAILEDOPERATION_REPLICATIONSOURCECHECKFAILEDERROR = "FailedOperation.ReplicationSourceCheckFailedError" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE = "InvalidParameterValue" +// INVALIDPARAMETERVALUE_ACKTIME = "InvalidParameterValue.AckTime" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // LIMITEXCEEDED_TOPICS = "LimitExceeded.Topics" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" @@ -1534,10 +1634,13 @@ func (c *Client) CreateTopic(request *CreateTopicRequest) (response *CreateTopic // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" // RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" // RESOURCEUNAVAILABLE_FUNDREQUIRED = "ResourceUnavailable.FundRequired" +// UNKNOWNPARAMETER_POLICY = "UnknownParameter.Policy" +// UNSUPPORTEDOPERATION_TOPICUNACK = "UnsupportedOperation.TopicUnack" func (c *Client) CreateTopicWithContext(ctx context.Context, request *CreateTopicRequest) (response *CreateTopicResponse, err error) { if request == nil { request = NewCreateTopicRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "CreateTopic") if c.GetCredential() == nil { return nil, errors.New("CreateTopic require credential") @@ -1574,8 +1677,10 @@ func NewDeleteClusterResponse() (response *DeleteClusterResponse) { // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_DELETECLUSTER = "FailedOperation.DeleteCluster" // FAILEDOPERATION_NAMESPACEINUSE = "FailedOperation.NamespaceInUse" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_ROLEINUSE = "FailedOperation.RoleInUse" // FAILEDOPERATION_VPCINUSE = "FailedOperation.VpcInUse" // OPERATIONDENIED_DEFAULTENVIRONMENT = "OperationDenied.DefaultEnvironment" @@ -1589,8 +1694,10 @@ func (c *Client) DeleteCluster(request *DeleteClusterRequest) (response *DeleteC // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_DELETECLUSTER = "FailedOperation.DeleteCluster" // FAILEDOPERATION_NAMESPACEINUSE = "FailedOperation.NamespaceInUse" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_ROLEINUSE = "FailedOperation.RoleInUse" // FAILEDOPERATION_VPCINUSE = "FailedOperation.VpcInUse" // OPERATIONDENIED_DEFAULTENVIRONMENT = "OperationDenied.DefaultEnvironment" @@ -1599,6 +1706,7 @@ func (c *Client) DeleteClusterWithContext(ctx context.Context, request *DeleteCl if request == nil { request = NewDeleteClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteCluster") if c.GetCredential() == nil { return nil, errors.New("DeleteCluster require credential") @@ -1656,6 +1764,7 @@ func (c *Client) DeleteCmqQueueWithContext(ctx context.Context, request *DeleteC if request == nil { request = NewDeleteCmqQueueRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteCmqQueue") if c.GetCredential() == nil { return nil, errors.New("DeleteCmqQueue require credential") @@ -1715,6 +1824,7 @@ func (c *Client) DeleteCmqSubscribeWithContext(ctx context.Context, request *Del if request == nil { request = NewDeleteCmqSubscribeRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteCmqSubscribe") if c.GetCredential() == nil { return nil, errors.New("DeleteCmqSubscribe require credential") @@ -1770,6 +1880,7 @@ func (c *Client) DeleteCmqTopicWithContext(ctx context.Context, request *DeleteC if request == nil { request = NewDeleteCmqTopicRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteCmqTopic") if c.GetCredential() == nil { return nil, errors.New("DeleteCmqTopic require credential") @@ -1831,6 +1942,7 @@ func (c *Client) DeleteEnvironmentRolesWithContext(ctx context.Context, request if request == nil { request = NewDeleteEnvironmentRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteEnvironmentRoles") if c.GetCredential() == nil { return nil, errors.New("DeleteEnvironmentRoles require credential") @@ -1867,8 +1979,10 @@ func NewDeleteEnvironmentsResponse() (response *DeleteEnvironmentsResponse) { // // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_DELETEENVIRONMENTS = "FailedOperation.DeleteEnvironments" // FAILEDOPERATION_DELETENAMESPACE = "FailedOperation.DeleteNamespace" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_ROLEINUSE = "FailedOperation.RoleInUse" // FAILEDOPERATION_TOPICINUSE = "FailedOperation.TopicInUse" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" @@ -1887,8 +2001,10 @@ func (c *Client) DeleteEnvironments(request *DeleteEnvironmentsRequest) (respons // // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_DELETEENVIRONMENTS = "FailedOperation.DeleteEnvironments" // FAILEDOPERATION_DELETENAMESPACE = "FailedOperation.DeleteNamespace" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_ROLEINUSE = "FailedOperation.RoleInUse" // FAILEDOPERATION_TOPICINUSE = "FailedOperation.TopicInUse" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" @@ -1902,6 +2018,7 @@ func (c *Client) DeleteEnvironmentsWithContext(ctx context.Context, request *Del if request == nil { request = NewDeleteEnvironmentsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteEnvironments") if c.GetCredential() == nil { return nil, errors.New("DeleteEnvironments require credential") @@ -1937,18 +2054,10 @@ func NewDeleteProClusterResponse() (response *DeleteProClusterResponse) { // 删除专业集群——预付费,仅通过API 调用 // // 可能返回的错误码: -// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" -// FAILEDOPERATION_DELETEENVIRONMENTS = "FailedOperation.DeleteEnvironments" -// FAILEDOPERATION_DELETENAMESPACE = "FailedOperation.DeleteNamespace" -// FAILEDOPERATION_ROLEINUSE = "FailedOperation.RoleInUse" -// FAILEDOPERATION_TOPICINUSE = "FailedOperation.TopicInUse" -// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" -// INVALIDPARAMETER = "InvalidParameter" -// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" -// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" -// OPERATIONDENIED_DEFAULTENVIRONMENT = "OperationDenied.DefaultEnvironment" +// FAILEDOPERATION_DELETECLUSTERPROTECTION = "FailedOperation.DeleteClusterProtection" +// FAILEDOPERATION_INSTANCECANNOTDELETE = "FailedOperation.InstanceCanNotDelete" +// FAILEDOPERATION_ONLINEREFUNDRESOURCENOTEXIT = "FailedOperation.OnlineRefundResourceNotExit" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" func (c *Client) DeleteProCluster(request *DeleteProClusterRequest) (response *DeleteProClusterResponse, err error) { return c.DeleteProClusterWithContext(context.Background(), request) } @@ -1957,22 +2066,15 @@ func (c *Client) DeleteProCluster(request *DeleteProClusterRequest) (response *D // 删除专业集群——预付费,仅通过API 调用 // // 可能返回的错误码: -// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" -// FAILEDOPERATION_DELETEENVIRONMENTS = "FailedOperation.DeleteEnvironments" -// FAILEDOPERATION_DELETENAMESPACE = "FailedOperation.DeleteNamespace" -// FAILEDOPERATION_ROLEINUSE = "FailedOperation.RoleInUse" -// FAILEDOPERATION_TOPICINUSE = "FailedOperation.TopicInUse" -// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" -// INVALIDPARAMETER = "InvalidParameter" -// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" -// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" -// OPERATIONDENIED_DEFAULTENVIRONMENT = "OperationDenied.DefaultEnvironment" +// FAILEDOPERATION_DELETECLUSTERPROTECTION = "FailedOperation.DeleteClusterProtection" +// FAILEDOPERATION_INSTANCECANNOTDELETE = "FailedOperation.InstanceCanNotDelete" +// FAILEDOPERATION_ONLINEREFUNDRESOURCENOTEXIT = "FailedOperation.OnlineRefundResourceNotExit" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" func (c *Client) DeleteProClusterWithContext(ctx context.Context, request *DeleteProClusterRequest) (response *DeleteProClusterResponse, err error) { if request == nil { request = NewDeleteProClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteProCluster") if c.GetCredential() == nil { return nil, errors.New("DeleteProCluster require credential") @@ -1985,6 +2087,112 @@ func (c *Client) DeleteProClusterWithContext(ctx context.Context, request *Delet return } +func NewDeleteRabbitMQBindingRequest() (request *DeleteRabbitMQBindingRequest) { + request = &DeleteRabbitMQBindingRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DeleteRabbitMQBinding") + + + return +} + +func NewDeleteRabbitMQBindingResponse() (response *DeleteRabbitMQBindingResponse) { + response = &DeleteRabbitMQBindingResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DeleteRabbitMQBinding +// 解绑RabbitMQ路由关系 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DeleteRabbitMQBinding(request *DeleteRabbitMQBindingRequest) (response *DeleteRabbitMQBindingResponse, err error) { + return c.DeleteRabbitMQBindingWithContext(context.Background(), request) +} + +// DeleteRabbitMQBinding +// 解绑RabbitMQ路由关系 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DeleteRabbitMQBindingWithContext(ctx context.Context, request *DeleteRabbitMQBindingRequest) (response *DeleteRabbitMQBindingResponse, err error) { + if request == nil { + request = NewDeleteRabbitMQBindingRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRabbitMQBinding") + + if c.GetCredential() == nil { + return nil, errors.New("DeleteRabbitMQBinding require credential") + } + + request.SetContext(ctx) + + response = NewDeleteRabbitMQBindingResponse() + err = c.Send(request, response) + return +} + +func NewDeleteRabbitMQPermissionRequest() (request *DeleteRabbitMQPermissionRequest) { + request = &DeleteRabbitMQPermissionRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DeleteRabbitMQPermission") + + + return +} + +func NewDeleteRabbitMQPermissionResponse() (response *DeleteRabbitMQPermissionResponse) { + response = &DeleteRabbitMQPermissionResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DeleteRabbitMQPermission +// 删除RabbitMQ的权限 +// +// 可能返回的错误码: +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DeleteRabbitMQPermission(request *DeleteRabbitMQPermissionRequest) (response *DeleteRabbitMQPermissionResponse, err error) { + return c.DeleteRabbitMQPermissionWithContext(context.Background(), request) +} + +// DeleteRabbitMQPermission +// 删除RabbitMQ的权限 +// +// 可能返回的错误码: +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DeleteRabbitMQPermissionWithContext(ctx context.Context, request *DeleteRabbitMQPermissionRequest) (response *DeleteRabbitMQPermissionResponse, err error) { + if request == nil { + request = NewDeleteRabbitMQPermissionRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRabbitMQPermission") + + if c.GetCredential() == nil { + return nil, errors.New("DeleteRabbitMQPermission require credential") + } + + request.SetContext(ctx) + + response = NewDeleteRabbitMQPermissionResponse() + err = c.Send(request, response) + return +} + func NewDeleteRabbitMQUserRequest() (request *DeleteRabbitMQUserRequest) { request = &DeleteRabbitMQUserRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -2026,6 +2234,7 @@ func (c *Client) DeleteRabbitMQUserWithContext(ctx context.Context, request *Del if request == nil { request = NewDeleteRabbitMQUserRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRabbitMQUser") if c.GetCredential() == nil { return nil, errors.New("DeleteRabbitMQUser require credential") @@ -2058,27 +2267,30 @@ func NewDeleteRabbitMQVipInstanceResponse() (response *DeleteRabbitMQVipInstance } // DeleteRabbitMQVipInstance -// 删除RabbitMQ专享版实例 +// 删除 RabbitMQ 托管版实例 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" // INTERNALERROR = "InternalError" // INVALIDPARAMETER = "InvalidParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" func (c *Client) DeleteRabbitMQVipInstance(request *DeleteRabbitMQVipInstanceRequest) (response *DeleteRabbitMQVipInstanceResponse, err error) { return c.DeleteRabbitMQVipInstanceWithContext(context.Background(), request) } // DeleteRabbitMQVipInstance -// 删除RabbitMQ专享版实例 +// 删除 RabbitMQ 托管版实例 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" // INTERNALERROR = "InternalError" // INVALIDPARAMETER = "InvalidParameter" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" func (c *Client) DeleteRabbitMQVipInstanceWithContext(ctx context.Context, request *DeleteRabbitMQVipInstanceRequest) (response *DeleteRabbitMQVipInstanceResponse, err error) { if request == nil { request = NewDeleteRabbitMQVipInstanceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRabbitMQVipInstance") if c.GetCredential() == nil { return nil, errors.New("DeleteRabbitMQVipInstance require credential") @@ -2132,6 +2344,7 @@ func (c *Client) DeleteRabbitMQVirtualHostWithContext(ctx context.Context, reque if request == nil { request = NewDeleteRabbitMQVirtualHostRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRabbitMQVirtualHost") if c.GetCredential() == nil { return nil, errors.New("DeleteRabbitMQVirtualHost require credential") @@ -2191,6 +2404,7 @@ func (c *Client) DeleteRocketMQClusterWithContext(ctx context.Context, request * if request == nil { request = NewDeleteRocketMQClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRocketMQCluster") if c.GetCredential() == nil { return nil, errors.New("DeleteRocketMQCluster require credential") @@ -2252,6 +2466,7 @@ func (c *Client) DeleteRocketMQEnvironmentRolesWithContext(ctx context.Context, if request == nil { request = NewDeleteRocketMQEnvironmentRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRocketMQEnvironmentRoles") if c.GetCredential() == nil { return nil, errors.New("DeleteRocketMQEnvironmentRoles require credential") @@ -2313,6 +2528,7 @@ func (c *Client) DeleteRocketMQGroupWithContext(ctx context.Context, request *De if request == nil { request = NewDeleteRocketMQGroupRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRocketMQGroup") if c.GetCredential() == nil { return nil, errors.New("DeleteRocketMQGroup require credential") @@ -2370,6 +2586,7 @@ func (c *Client) DeleteRocketMQNamespaceWithContext(ctx context.Context, request if request == nil { request = NewDeleteRocketMQNamespaceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRocketMQNamespace") if c.GetCredential() == nil { return nil, errors.New("DeleteRocketMQNamespace require credential") @@ -2433,6 +2650,7 @@ func (c *Client) DeleteRocketMQRolesWithContext(ctx context.Context, request *De if request == nil { request = NewDeleteRocketMQRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRocketMQRoles") if c.GetCredential() == nil { return nil, errors.New("DeleteRocketMQRoles require credential") @@ -2490,6 +2708,7 @@ func (c *Client) DeleteRocketMQTopicWithContext(ctx context.Context, request *De if request == nil { request = NewDeleteRocketMQTopicRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRocketMQTopic") if c.GetCredential() == nil { return nil, errors.New("DeleteRocketMQTopic require credential") @@ -2541,6 +2760,7 @@ func (c *Client) DeleteRocketMQVipInstanceWithContext(ctx context.Context, reque if request == nil { request = NewDeleteRocketMQVipInstanceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRocketMQVipInstance") if c.GetCredential() == nil { return nil, errors.New("DeleteRocketMQVipInstance require credential") @@ -2604,6 +2824,7 @@ func (c *Client) DeleteRolesWithContext(ctx context.Context, request *DeleteRole if request == nil { request = NewDeleteRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteRoles") if c.GetCredential() == nil { return nil, errors.New("DeleteRoles require credential") @@ -2677,6 +2898,7 @@ func (c *Client) DeleteSubscriptionsWithContext(ctx context.Context, request *De if request == nil { request = NewDeleteSubscriptionsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteSubscriptions") if c.GetCredential() == nil { return nil, errors.New("DeleteSubscriptions require credential") @@ -2714,7 +2936,9 @@ func NewDeleteTopicsResponse() (response *DeleteTopicsResponse) { // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_DELETETOPICS = "FailedOperation.DeleteTopics" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" @@ -2732,7 +2956,9 @@ func (c *Client) DeleteTopics(request *DeleteTopicsRequest) (response *DeleteTop // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_DELETETOPICS = "FailedOperation.DeleteTopics" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" @@ -2744,6 +2970,7 @@ func (c *Client) DeleteTopicsWithContext(ctx context.Context, request *DeleteTop if request == nil { request = NewDeleteTopicsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DeleteTopics") if c.GetCredential() == nil { return nil, errors.New("DeleteTopics require credential") @@ -2776,6 +3003,10 @@ func NewDescribeAMQPClustersResponse() (response *DescribeAMQPClustersResponse) } // DescribeAMQPClusters +// 历史原因,该接口位于tdmq-manager,目前rabbitmq产品没有使用该接口,当前使用的是DescribeRabbitMQVipInstances。不过从调用链上看,线网还有请求流程,所以走预下线流程。 +// +// +// // 获取amqp集群列表 // // 可能返回的错误码: @@ -2789,6 +3020,10 @@ func (c *Client) DescribeAMQPClusters(request *DescribeAMQPClustersRequest) (res } // DescribeAMQPClusters +// 历史原因,该接口位于tdmq-manager,目前rabbitmq产品没有使用该接口,当前使用的是DescribeRabbitMQVipInstances。不过从调用链上看,线网还有请求流程,所以走预下线流程。 +// +// +// // 获取amqp集群列表 // // 可能返回的错误码: @@ -2801,6 +3036,7 @@ func (c *Client) DescribeAMQPClustersWithContext(ctx context.Context, request *D if request == nil { request = NewDescribeAMQPClustersRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeAMQPClusters") if c.GetCredential() == nil { return nil, errors.New("DescribeAMQPClusters require credential") @@ -2858,6 +3094,7 @@ func (c *Client) DescribeAllTenantsWithContext(ctx context.Context, request *Des if request == nil { request = NewDescribeAllTenantsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeAllTenants") if c.GetCredential() == nil { return nil, errors.New("DescribeAllTenants require credential") @@ -2919,6 +3156,7 @@ func (c *Client) DescribeBindClustersWithContext(ctx context.Context, request *D if request == nil { request = NewDescribeBindClustersRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeBindClusters") if c.GetCredential() == nil { return nil, errors.New("DescribeBindClusters require credential") @@ -2980,6 +3218,7 @@ func (c *Client) DescribeBindVpcsWithContext(ctx context.Context, request *Descr if request == nil { request = NewDescribeBindVpcsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeBindVpcs") if c.GetCredential() == nil { return nil, errors.New("DescribeBindVpcs require credential") @@ -3029,6 +3268,7 @@ func (c *Client) DescribeClusterDetailWithContext(ctx context.Context, request * if request == nil { request = NewDescribeClusterDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeClusterDetail") if c.GetCredential() == nil { return nil, errors.New("DescribeClusterDetail require credential") @@ -3064,6 +3304,8 @@ func NewDescribeClustersResponse() (response *DescribeClustersResponse) { // 获取集群列表 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" func (c *Client) DescribeClusters(request *DescribeClustersRequest) (response *DescribeClustersResponse, err error) { return c.DescribeClustersWithContext(context.Background(), request) @@ -3073,11 +3315,14 @@ func (c *Client) DescribeClusters(request *DescribeClustersRequest) (response *D // 获取集群列表 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" func (c *Client) DescribeClustersWithContext(ctx context.Context, request *DescribeClustersRequest) (response *DescribeClustersResponse, err error) { if request == nil { request = NewDescribeClustersRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeClusters") if c.GetCredential() == nil { return nil, errors.New("DescribeClusters require credential") @@ -3090,63 +3335,6 @@ func (c *Client) DescribeClustersWithContext(ctx context.Context, request *Descr return } -func NewDescribeCmqDeadLetterSourceQueuesRequest() (request *DescribeCmqDeadLetterSourceQueuesRequest) { - request = &DescribeCmqDeadLetterSourceQueuesRequest{ - BaseRequest: &tchttp.BaseRequest{}, - } - - request.Init().WithApiInfo("tdmq", APIVersion, "DescribeCmqDeadLetterSourceQueues") - - - return -} - -func NewDescribeCmqDeadLetterSourceQueuesResponse() (response *DescribeCmqDeadLetterSourceQueuesResponse) { - response = &DescribeCmqDeadLetterSourceQueuesResponse{ - BaseResponse: &tchttp.BaseResponse{}, - } - return - -} - -// DescribeCmqDeadLetterSourceQueues -// 接口很久之前已删除,需下线 -// -// -// -// 枚举cmq死信队列源队列 -// -// 可能返回的错误码: -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) DescribeCmqDeadLetterSourceQueues(request *DescribeCmqDeadLetterSourceQueuesRequest) (response *DescribeCmqDeadLetterSourceQueuesResponse, err error) { - return c.DescribeCmqDeadLetterSourceQueuesWithContext(context.Background(), request) -} - -// DescribeCmqDeadLetterSourceQueues -// 接口很久之前已删除,需下线 -// -// -// -// 枚举cmq死信队列源队列 -// -// 可能返回的错误码: -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) DescribeCmqDeadLetterSourceQueuesWithContext(ctx context.Context, request *DescribeCmqDeadLetterSourceQueuesRequest) (response *DescribeCmqDeadLetterSourceQueuesResponse, err error) { - if request == nil { - request = NewDescribeCmqDeadLetterSourceQueuesRequest() - } - - if c.GetCredential() == nil { - return nil, errors.New("DescribeCmqDeadLetterSourceQueues require credential") - } - - request.SetContext(ctx) - - response = NewDescribeCmqDeadLetterSourceQueuesResponse() - err = c.Send(request, response) - return -} - func NewDescribeCmqQueueDetailRequest() (request *DescribeCmqQueueDetailRequest) { request = &DescribeCmqQueueDetailRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -3186,6 +3374,7 @@ func (c *Client) DescribeCmqQueueDetailWithContext(ctx context.Context, request if request == nil { request = NewDescribeCmqQueueDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeCmqQueueDetail") if c.GetCredential() == nil { return nil, errors.New("DescribeCmqQueueDetail require credential") @@ -3237,6 +3426,7 @@ func (c *Client) DescribeCmqQueuesWithContext(ctx context.Context, request *Desc if request == nil { request = NewDescribeCmqQueuesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeCmqQueues") if c.GetCredential() == nil { return nil, errors.New("DescribeCmqQueues require credential") @@ -3288,6 +3478,7 @@ func (c *Client) DescribeCmqSubscriptionDetailWithContext(ctx context.Context, r if request == nil { request = NewDescribeCmqSubscriptionDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeCmqSubscriptionDetail") if c.GetCredential() == nil { return nil, errors.New("DescribeCmqSubscriptionDetail require credential") @@ -3345,6 +3536,7 @@ func (c *Client) DescribeCmqTopicDetailWithContext(ctx context.Context, request if request == nil { request = NewDescribeCmqTopicDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeCmqTopicDetail") if c.GetCredential() == nil { return nil, errors.New("DescribeCmqTopicDetail require credential") @@ -3396,6 +3588,7 @@ func (c *Client) DescribeCmqTopicsWithContext(ctx context.Context, request *Desc if request == nil { request = NewDescribeCmqTopicsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeCmqTopics") if c.GetCredential() == nil { return nil, errors.New("DescribeCmqTopics require credential") @@ -3461,6 +3654,7 @@ func (c *Client) DescribeEnvironmentAttributesWithContext(ctx context.Context, r if request == nil { request = NewDescribeEnvironmentAttributesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeEnvironmentAttributes") if c.GetCredential() == nil { return nil, errors.New("DescribeEnvironmentAttributes require credential") @@ -3522,6 +3716,7 @@ func (c *Client) DescribeEnvironmentRolesWithContext(ctx context.Context, reques if request == nil { request = NewDescribeEnvironmentRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeEnvironmentRoles") if c.GetCredential() == nil { return nil, errors.New("DescribeEnvironmentRoles require credential") @@ -3579,6 +3774,7 @@ func (c *Client) DescribeEnvironmentsWithContext(ctx context.Context, request *D if request == nil { request = NewDescribeEnvironmentsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeEnvironments") if c.GetCredential() == nil { return nil, errors.New("DescribeEnvironments require credential") @@ -3630,6 +3826,7 @@ func (c *Client) DescribeMqMsgTraceWithContext(ctx context.Context, request *Des if request == nil { request = NewDescribeMqMsgTraceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeMqMsgTrace") if c.GetCredential() == nil { return nil, errors.New("DescribeMqMsgTrace require credential") @@ -3693,6 +3890,7 @@ func (c *Client) DescribeMsgWithContext(ctx context.Context, request *DescribeMs if request == nil { request = NewDescribeMsgRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeMsg") if c.GetCredential() == nil { return nil, errors.New("DescribeMsg require credential") @@ -3752,6 +3950,7 @@ func (c *Client) DescribeMsgTraceWithContext(ctx context.Context, request *Descr if request == nil { request = NewDescribeMsgTraceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeMsgTrace") if c.GetCredential() == nil { return nil, errors.New("DescribeMsgTrace require credential") @@ -3803,6 +4002,7 @@ func (c *Client) DescribeNamespaceBundlesOptWithContext(ctx context.Context, req if request == nil { request = NewDescribeNamespaceBundlesOptRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeNamespaceBundlesOpt") if c.GetCredential() == nil { return nil, errors.New("DescribeNamespaceBundlesOpt require credential") @@ -3852,6 +4052,7 @@ func (c *Client) DescribeNodeHealthOptWithContext(ctx context.Context, request * if request == nil { request = NewDescribeNodeHealthOptRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeNodeHealthOpt") if c.GetCredential() == nil { return nil, errors.New("DescribeNodeHealthOpt require credential") @@ -3887,6 +4088,8 @@ func NewDescribePublisherSummaryResponse() (response *DescribePublisherSummaryRe // 获取消息生产概览信息 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // RESOURCENOTFOUND_TOPIC = "ResourceNotFound.Topic" func (c *Client) DescribePublisherSummary(request *DescribePublisherSummaryRequest) (response *DescribePublisherSummaryResponse, err error) { return c.DescribePublisherSummaryWithContext(context.Background(), request) @@ -3896,11 +4099,14 @@ func (c *Client) DescribePublisherSummary(request *DescribePublisherSummaryReque // 获取消息生产概览信息 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // RESOURCENOTFOUND_TOPIC = "ResourceNotFound.Topic" func (c *Client) DescribePublisherSummaryWithContext(ctx context.Context, request *DescribePublisherSummaryRequest) (response *DescribePublisherSummaryResponse, err error) { if request == nil { request = NewDescribePublisherSummaryRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribePublisherSummary") if c.GetCredential() == nil { return nil, errors.New("DescribePublisherSummary require credential") @@ -3936,6 +4142,8 @@ func NewDescribePublishersResponse() (response *DescribePublishersResponse) { // 获取生产者信息列表 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // RESOURCENOTFOUND_TOPIC = "ResourceNotFound.Topic" func (c *Client) DescribePublishers(request *DescribePublishersRequest) (response *DescribePublishersResponse, err error) { return c.DescribePublishersWithContext(context.Background(), request) @@ -3945,11 +4153,14 @@ func (c *Client) DescribePublishers(request *DescribePublishersRequest) (respons // 获取生产者信息列表 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // RESOURCENOTFOUND_TOPIC = "ResourceNotFound.Topic" func (c *Client) DescribePublishersWithContext(ctx context.Context, request *DescribePublishersRequest) (response *DescribePublishersResponse, err error) { if request == nil { request = NewDescribePublishersRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribePublishers") if c.GetCredential() == nil { return nil, errors.New("DescribePublishers require credential") @@ -3986,6 +4197,8 @@ func NewDescribePulsarProInstanceDetailResponse() (response *DescribePulsarProIn // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INTERNALERROR_ILLEGALMESSAGE = "InternalError.IllegalMessage" // INVALIDPARAMETER = "InvalidParameter" // RESOURCENOTFOUND = "ResourceNotFound" @@ -3999,6 +4212,8 @@ func (c *Client) DescribePulsarProInstanceDetail(request *DescribePulsarProInsta // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INTERNALERROR_ILLEGALMESSAGE = "InternalError.IllegalMessage" // INVALIDPARAMETER = "InvalidParameter" // RESOURCENOTFOUND = "ResourceNotFound" @@ -4007,6 +4222,7 @@ func (c *Client) DescribePulsarProInstanceDetailWithContext(ctx context.Context, if request == nil { request = NewDescribePulsarProInstanceDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribePulsarProInstanceDetail") if c.GetCredential() == nil { return nil, errors.New("DescribePulsarProInstanceDetail require credential") @@ -4043,6 +4259,8 @@ func NewDescribePulsarProInstancesResponse() (response *DescribePulsarProInstanc // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" func (c *Client) DescribePulsarProInstances(request *DescribePulsarProInstancesRequest) (response *DescribePulsarProInstancesResponse, err error) { return c.DescribePulsarProInstancesWithContext(context.Background(), request) } @@ -4052,10 +4270,13 @@ func (c *Client) DescribePulsarProInstances(request *DescribePulsarProInstancesR // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" func (c *Client) DescribePulsarProInstancesWithContext(ctx context.Context, request *DescribePulsarProInstancesRequest) (response *DescribePulsarProInstancesResponse, err error) { if request == nil { request = NewDescribePulsarProInstancesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribePulsarProInstances") if c.GetCredential() == nil { return nil, errors.New("DescribePulsarProInstances require credential") @@ -4068,6 +4289,60 @@ func (c *Client) DescribePulsarProInstancesWithContext(ctx context.Context, requ return } +func NewDescribeRabbitMQBindingsRequest() (request *DescribeRabbitMQBindingsRequest) { + request = &DescribeRabbitMQBindingsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRabbitMQBindings") + + + return +} + +func NewDescribeRabbitMQBindingsResponse() (response *DescribeRabbitMQBindingsResponse) { + response = &DescribeRabbitMQBindingsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeRabbitMQBindings +// 查询RabbitMQ路由关系列表 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DescribeRabbitMQBindings(request *DescribeRabbitMQBindingsRequest) (response *DescribeRabbitMQBindingsResponse, err error) { + return c.DescribeRabbitMQBindingsWithContext(context.Background(), request) +} + +// DescribeRabbitMQBindings +// 查询RabbitMQ路由关系列表 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DescribeRabbitMQBindingsWithContext(ctx context.Context, request *DescribeRabbitMQBindingsRequest) (response *DescribeRabbitMQBindingsResponse, err error) { + if request == nil { + request = NewDescribeRabbitMQBindingsRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQBindings") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeRabbitMQBindings require credential") + } + + request.SetContext(ctx) + + response = NewDescribeRabbitMQBindingsResponse() + err = c.Send(request, response) + return +} + func NewDescribeRabbitMQExchangesRequest() (request *DescribeRabbitMQExchangesRequest) { request = &DescribeRabbitMQExchangesRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -4109,6 +4384,7 @@ func (c *Client) DescribeRabbitMQExchangesWithContext(ctx context.Context, reque if request == nil { request = NewDescribeRabbitMQExchangesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQExchanges") if c.GetCredential() == nil { return nil, errors.New("DescribeRabbitMQExchanges require credential") @@ -4141,7 +4417,7 @@ func NewDescribeRabbitMQNodeListResponse() (response *DescribeRabbitMQNodeListRe } // DescribeRabbitMQNodeList -// RabbitMQ专享版查询节点列表 +// 查询 RabbitMQ 托管版节点列表 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -4151,7 +4427,7 @@ func (c *Client) DescribeRabbitMQNodeList(request *DescribeRabbitMQNodeListReque } // DescribeRabbitMQNodeList -// RabbitMQ专享版查询节点列表 +// 查询 RabbitMQ 托管版节点列表 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -4160,6 +4436,7 @@ func (c *Client) DescribeRabbitMQNodeListWithContext(ctx context.Context, reques if request == nil { request = NewDescribeRabbitMQNodeListRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQNodeList") if c.GetCredential() == nil { return nil, errors.New("DescribeRabbitMQNodeList require credential") @@ -4172,50 +4449,105 @@ func (c *Client) DescribeRabbitMQNodeListWithContext(ctx context.Context, reques return } -func NewDescribeRabbitMQQueueDetailRequest() (request *DescribeRabbitMQQueueDetailRequest) { - request = &DescribeRabbitMQQueueDetailRequest{ +func NewDescribeRabbitMQPermissionRequest() (request *DescribeRabbitMQPermissionRequest) { + request = &DescribeRabbitMQPermissionRequest{ BaseRequest: &tchttp.BaseRequest{}, } - request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRabbitMQQueueDetail") + request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRabbitMQPermission") return } -func NewDescribeRabbitMQQueueDetailResponse() (response *DescribeRabbitMQQueueDetailResponse) { - response = &DescribeRabbitMQQueueDetailResponse{ +func NewDescribeRabbitMQPermissionResponse() (response *DescribeRabbitMQPermissionResponse) { + response = &DescribeRabbitMQPermissionResponse{ BaseResponse: &tchttp.BaseResponse{}, } return } -// DescribeRabbitMQQueueDetail -// 查询RabbitMQ队列详情 +// DescribeRabbitMQPermission +// 查询RabbitMQ权限列表 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" // INTERNALERROR = "InternalError" // INVALIDPARAMETER = "InvalidParameter" -func (c *Client) DescribeRabbitMQQueueDetail(request *DescribeRabbitMQQueueDetailRequest) (response *DescribeRabbitMQQueueDetailResponse, err error) { - return c.DescribeRabbitMQQueueDetailWithContext(context.Background(), request) +func (c *Client) DescribeRabbitMQPermission(request *DescribeRabbitMQPermissionRequest) (response *DescribeRabbitMQPermissionResponse, err error) { + return c.DescribeRabbitMQPermissionWithContext(context.Background(), request) } -// DescribeRabbitMQQueueDetail -// 查询RabbitMQ队列详情 +// DescribeRabbitMQPermission +// 查询RabbitMQ权限列表 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" // INTERNALERROR = "InternalError" // INVALIDPARAMETER = "InvalidParameter" -func (c *Client) DescribeRabbitMQQueueDetailWithContext(ctx context.Context, request *DescribeRabbitMQQueueDetailRequest) (response *DescribeRabbitMQQueueDetailResponse, err error) { +func (c *Client) DescribeRabbitMQPermissionWithContext(ctx context.Context, request *DescribeRabbitMQPermissionRequest) (response *DescribeRabbitMQPermissionResponse, err error) { if request == nil { - request = NewDescribeRabbitMQQueueDetailRequest() + request = NewDescribeRabbitMQPermissionRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQPermission") if c.GetCredential() == nil { - return nil, errors.New("DescribeRabbitMQQueueDetail require credential") + return nil, errors.New("DescribeRabbitMQPermission require credential") + } + + request.SetContext(ctx) + + response = NewDescribeRabbitMQPermissionResponse() + err = c.Send(request, response) + return +} + +func NewDescribeRabbitMQQueueDetailRequest() (request *DescribeRabbitMQQueueDetailRequest) { + request = &DescribeRabbitMQQueueDetailRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRabbitMQQueueDetail") + + + return +} + +func NewDescribeRabbitMQQueueDetailResponse() (response *DescribeRabbitMQQueueDetailResponse) { + response = &DescribeRabbitMQQueueDetailResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeRabbitMQQueueDetail +// 查询RabbitMQ队列详情 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DescribeRabbitMQQueueDetail(request *DescribeRabbitMQQueueDetailRequest) (response *DescribeRabbitMQQueueDetailResponse, err error) { + return c.DescribeRabbitMQQueueDetailWithContext(context.Background(), request) +} + +// DescribeRabbitMQQueueDetail +// 查询RabbitMQ队列详情 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +func (c *Client) DescribeRabbitMQQueueDetailWithContext(ctx context.Context, request *DescribeRabbitMQQueueDetailRequest) (response *DescribeRabbitMQQueueDetailResponse, err error) { + if request == nil { + request = NewDescribeRabbitMQQueueDetailRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQQueueDetail") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeRabbitMQQueueDetail require credential") } request.SetContext(ctx) @@ -4251,6 +4583,7 @@ func NewDescribeRabbitMQQueuesResponse() (response *DescribeRabbitMQQueuesRespon // FAILEDOPERATION = "FailedOperation" // INTERNALERROR = "InternalError" // INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND = "ResourceNotFound" func (c *Client) DescribeRabbitMQQueues(request *DescribeRabbitMQQueuesRequest) (response *DescribeRabbitMQQueuesResponse, err error) { return c.DescribeRabbitMQQueuesWithContext(context.Background(), request) } @@ -4262,10 +4595,12 @@ func (c *Client) DescribeRabbitMQQueues(request *DescribeRabbitMQQueuesRequest) // FAILEDOPERATION = "FailedOperation" // INTERNALERROR = "InternalError" // INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND = "ResourceNotFound" func (c *Client) DescribeRabbitMQQueuesWithContext(ctx context.Context, request *DescribeRabbitMQQueuesRequest) (response *DescribeRabbitMQQueuesResponse, err error) { if request == nil { request = NewDescribeRabbitMQQueuesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQQueues") if c.GetCredential() == nil { return nil, errors.New("DescribeRabbitMQQueues require credential") @@ -4321,6 +4656,7 @@ func (c *Client) DescribeRabbitMQUserWithContext(ctx context.Context, request *D if request == nil { request = NewDescribeRabbitMQUserRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQUser") if c.GetCredential() == nil { return nil, errors.New("DescribeRabbitMQUser require credential") @@ -4353,7 +4689,7 @@ func NewDescribeRabbitMQVipInstanceResponse() (response *DescribeRabbitMQVipInst } // DescribeRabbitMQVipInstance -// 获取单个RabbitMQ专享实例信息 +// 获取单个 RabbitMQ 托管版实例信息 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -4366,7 +4702,7 @@ func (c *Client) DescribeRabbitMQVipInstance(request *DescribeRabbitMQVipInstanc } // DescribeRabbitMQVipInstance -// 获取单个RabbitMQ专享实例信息 +// 获取单个 RabbitMQ 托管版实例信息 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -4378,6 +4714,7 @@ func (c *Client) DescribeRabbitMQVipInstanceWithContext(ctx context.Context, req if request == nil { request = NewDescribeRabbitMQVipInstanceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQVipInstance") if c.GetCredential() == nil { return nil, errors.New("DescribeRabbitMQVipInstance require credential") @@ -4410,7 +4747,7 @@ func NewDescribeRabbitMQVipInstancesResponse() (response *DescribeRabbitMQVipIns } // DescribeRabbitMQVipInstances -// 查询用户已购的RabbitMQ专享实例列表 +// 查询用户已购的 RabbitMQ 托管版实例列表 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -4423,7 +4760,7 @@ func (c *Client) DescribeRabbitMQVipInstances(request *DescribeRabbitMQVipInstan } // DescribeRabbitMQVipInstances -// 查询用户已购的RabbitMQ专享实例列表 +// 查询用户已购的 RabbitMQ 托管版实例列表 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -4435,6 +4772,7 @@ func (c *Client) DescribeRabbitMQVipInstancesWithContext(ctx context.Context, re if request == nil { request = NewDescribeRabbitMQVipInstancesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQVipInstances") if c.GetCredential() == nil { return nil, errors.New("DescribeRabbitMQVipInstances require credential") @@ -4490,6 +4828,7 @@ func (c *Client) DescribeRabbitMQVirtualHostWithContext(ctx context.Context, req if request == nil { request = NewDescribeRabbitMQVirtualHostRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRabbitMQVirtualHost") if c.GetCredential() == nil { return nil, errors.New("DescribeRabbitMQVirtualHost require credential") @@ -4502,55 +4841,6 @@ func (c *Client) DescribeRabbitMQVirtualHostWithContext(ctx context.Context, req return } -func NewDescribeRabbitMQVirtualHostListRequest() (request *DescribeRabbitMQVirtualHostListRequest) { - request = &DescribeRabbitMQVirtualHostListRequest{ - BaseRequest: &tchttp.BaseRequest{}, - } - - request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRabbitMQVirtualHostList") - - - return -} - -func NewDescribeRabbitMQVirtualHostListResponse() (response *DescribeRabbitMQVirtualHostListResponse) { - response = &DescribeRabbitMQVirtualHostListResponse{ - BaseResponse: &tchttp.BaseResponse{}, - } - return - -} - -// DescribeRabbitMQVirtualHostList -// RabbitMQ专享版查询虚拟主机列表 -// -// 可能返回的错误码: -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) DescribeRabbitMQVirtualHostList(request *DescribeRabbitMQVirtualHostListRequest) (response *DescribeRabbitMQVirtualHostListResponse, err error) { - return c.DescribeRabbitMQVirtualHostListWithContext(context.Background(), request) -} - -// DescribeRabbitMQVirtualHostList -// RabbitMQ专享版查询虚拟主机列表 -// -// 可能返回的错误码: -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) DescribeRabbitMQVirtualHostListWithContext(ctx context.Context, request *DescribeRabbitMQVirtualHostListRequest) (response *DescribeRabbitMQVirtualHostListResponse, err error) { - if request == nil { - request = NewDescribeRabbitMQVirtualHostListRequest() - } - - if c.GetCredential() == nil { - return nil, errors.New("DescribeRabbitMQVirtualHostList require credential") - } - - request.SetContext(ctx) - - response = NewDescribeRabbitMQVirtualHostListResponse() - err = c.Send(request, response) - return -} - func NewDescribeRocketMQClusterRequest() (request *DescribeRocketMQClusterRequest) { request = &DescribeRocketMQClusterRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -4596,6 +4886,7 @@ func (c *Client) DescribeRocketMQClusterWithContext(ctx context.Context, request if request == nil { request = NewDescribeRocketMQClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQCluster") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQCluster require credential") @@ -4651,6 +4942,7 @@ func (c *Client) DescribeRocketMQClustersWithContext(ctx context.Context, reques if request == nil { request = NewDescribeRocketMQClustersRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQClusters") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQClusters require credential") @@ -4706,6 +4998,7 @@ func (c *Client) DescribeRocketMQConsumeStatsWithContext(ctx context.Context, re if request == nil { request = NewDescribeRocketMQConsumeStatsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQConsumeStats") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQConsumeStats require credential") @@ -4761,6 +5054,7 @@ func (c *Client) DescribeRocketMQConsumerConnectionDetailWithContext(ctx context if request == nil { request = NewDescribeRocketMQConsumerConnectionDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQConsumerConnectionDetail") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQConsumerConnectionDetail require credential") @@ -4820,6 +5114,7 @@ func (c *Client) DescribeRocketMQConsumerConnectionsWithContext(ctx context.Cont if request == nil { request = NewDescribeRocketMQConsumerConnectionsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQConsumerConnections") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQConsumerConnections require credential") @@ -4881,6 +5176,7 @@ func (c *Client) DescribeRocketMQEnvironmentRolesWithContext(ctx context.Context if request == nil { request = NewDescribeRocketMQEnvironmentRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQEnvironmentRoles") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQEnvironmentRoles require credential") @@ -4942,6 +5238,7 @@ func (c *Client) DescribeRocketMQGroupsWithContext(ctx context.Context, request if request == nil { request = NewDescribeRocketMQGroupsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQGroups") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQGroups require credential") @@ -5003,6 +5300,7 @@ func (c *Client) DescribeRocketMQMigratingTopicListWithContext(ctx context.Conte if request == nil { request = NewDescribeRocketMQMigratingTopicListRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQMigratingTopicList") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQMigratingTopicList require credential") @@ -5054,6 +5352,7 @@ func (c *Client) DescribeRocketMQMsgWithContext(ctx context.Context, request *De if request == nil { request = NewDescribeRocketMQMsgRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQMsg") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQMsg require credential") @@ -5105,6 +5404,7 @@ func (c *Client) DescribeRocketMQMsgTraceWithContext(ctx context.Context, reques if request == nil { request = NewDescribeRocketMQMsgTraceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQMsgTrace") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQMsgTrace require credential") @@ -5166,6 +5466,7 @@ func (c *Client) DescribeRocketMQNamespacesWithContext(ctx context.Context, requ if request == nil { request = NewDescribeRocketMQNamespacesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQNamespaces") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQNamespaces require credential") @@ -5178,6 +5479,58 @@ func (c *Client) DescribeRocketMQNamespacesWithContext(ctx context.Context, requ return } +func NewDescribeRocketMQProducersRequest() (request *DescribeRocketMQProducersRequest) { + request = &DescribeRocketMQProducersRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRocketMQProducers") + + + return +} + +func NewDescribeRocketMQProducersResponse() (response *DescribeRocketMQProducersResponse) { + response = &DescribeRocketMQProducersResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeRocketMQProducers +// 查询 RocketMQ 指定主题下的生产者客户端列表。 +// +// 可能返回的错误码: +// RESOURCENOTFOUND_INSTANCE = "ResourceNotFound.Instance" +// RESOURCENOTFOUND_NAMSPACE = "ResourceNotFound.Namspace" +func (c *Client) DescribeRocketMQProducers(request *DescribeRocketMQProducersRequest) (response *DescribeRocketMQProducersResponse, err error) { + return c.DescribeRocketMQProducersWithContext(context.Background(), request) +} + +// DescribeRocketMQProducers +// 查询 RocketMQ 指定主题下的生产者客户端列表。 +// +// 可能返回的错误码: +// RESOURCENOTFOUND_INSTANCE = "ResourceNotFound.Instance" +// RESOURCENOTFOUND_NAMSPACE = "ResourceNotFound.Namspace" +func (c *Client) DescribeRocketMQProducersWithContext(ctx context.Context, request *DescribeRocketMQProducersRequest) (response *DescribeRocketMQProducersResponse, err error) { + if request == nil { + request = NewDescribeRocketMQProducersRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQProducers") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeRocketMQProducers require credential") + } + + request.SetContext(ctx) + + response = NewDescribeRocketMQProducersResponse() + err = c.Send(request, response) + return +} + func NewDescribeRocketMQPublicAccessMonitorDataRequest() (request *DescribeRocketMQPublicAccessMonitorDataRequest) { request = &DescribeRocketMQPublicAccessMonitorDataRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -5201,13 +5554,8 @@ func NewDescribeRocketMQPublicAccessMonitorDataResponse() (response *DescribeRoc // 从腾讯云可观测平台拉取公网指标监控数据,目前仅支持客户端到 LB 的入带宽和出宽带指标。 // // 可能返回的错误码: -// FAILEDOPERATION = "FailedOperation" -// INTERNALERROR = "InternalError" -// INTERNALERROR_ILLEGALMESSAGE = "InternalError.IllegalMessage" -// INVALIDPARAMETER = "InvalidParameter" -// RESOURCENOTFOUND = "ResourceNotFound" -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCENOTFOUND_INSTANCE = "ResourceNotFound.Instance" +// RESOURCENOTFOUND_NAMSPACE = "ResourceNotFound.Namspace" func (c *Client) DescribeRocketMQPublicAccessMonitorData(request *DescribeRocketMQPublicAccessMonitorDataRequest) (response *DescribeRocketMQPublicAccessMonitorDataResponse, err error) { return c.DescribeRocketMQPublicAccessMonitorDataWithContext(context.Background(), request) } @@ -5216,17 +5564,13 @@ func (c *Client) DescribeRocketMQPublicAccessMonitorData(request *DescribeRocket // 从腾讯云可观测平台拉取公网指标监控数据,目前仅支持客户端到 LB 的入带宽和出宽带指标。 // // 可能返回的错误码: -// FAILEDOPERATION = "FailedOperation" -// INTERNALERROR = "InternalError" -// INTERNALERROR_ILLEGALMESSAGE = "InternalError.IllegalMessage" -// INVALIDPARAMETER = "InvalidParameter" -// RESOURCENOTFOUND = "ResourceNotFound" -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCENOTFOUND_INSTANCE = "ResourceNotFound.Instance" +// RESOURCENOTFOUND_NAMSPACE = "ResourceNotFound.Namspace" func (c *Client) DescribeRocketMQPublicAccessMonitorDataWithContext(ctx context.Context, request *DescribeRocketMQPublicAccessMonitorDataRequest) (response *DescribeRocketMQPublicAccessMonitorDataResponse, err error) { if request == nil { request = NewDescribeRocketMQPublicAccessMonitorDataRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQPublicAccessMonitorData") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQPublicAccessMonitorData require credential") @@ -5262,13 +5606,8 @@ func NewDescribeRocketMQPublicAccessPointResponse() (response *DescribeRocketMQP // 接口用于查询RocketMQ实例的公网接入信息 // // 可能返回的错误码: -// FAILEDOPERATION = "FailedOperation" -// INTERNALERROR = "InternalError" -// INTERNALERROR_ILLEGALMESSAGE = "InternalError.IllegalMessage" -// INVALIDPARAMETER = "InvalidParameter" -// RESOURCENOTFOUND = "ResourceNotFound" -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCENOTFOUND_INSTANCE = "ResourceNotFound.Instance" +// RESOURCENOTFOUND_NAMSPACE = "ResourceNotFound.Namspace" func (c *Client) DescribeRocketMQPublicAccessPoint(request *DescribeRocketMQPublicAccessPointRequest) (response *DescribeRocketMQPublicAccessPointResponse, err error) { return c.DescribeRocketMQPublicAccessPointWithContext(context.Background(), request) } @@ -5277,17 +5616,13 @@ func (c *Client) DescribeRocketMQPublicAccessPoint(request *DescribeRocketMQPubl // 接口用于查询RocketMQ实例的公网接入信息 // // 可能返回的错误码: -// FAILEDOPERATION = "FailedOperation" -// INTERNALERROR = "InternalError" -// INTERNALERROR_ILLEGALMESSAGE = "InternalError.IllegalMessage" -// INVALIDPARAMETER = "InvalidParameter" -// RESOURCENOTFOUND = "ResourceNotFound" -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCEUNAVAILABLE = "ResourceUnavailable" +// RESOURCENOTFOUND_INSTANCE = "ResourceNotFound.Instance" +// RESOURCENOTFOUND_NAMSPACE = "ResourceNotFound.Namspace" func (c *Client) DescribeRocketMQPublicAccessPointWithContext(ctx context.Context, request *DescribeRocketMQPublicAccessPointRequest) (response *DescribeRocketMQPublicAccessPointResponse, err error) { if request == nil { request = NewDescribeRocketMQPublicAccessPointRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQPublicAccessPoint") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQPublicAccessPoint require credential") @@ -5347,6 +5682,7 @@ func (c *Client) DescribeRocketMQRolesWithContext(ctx context.Context, request * if request == nil { request = NewDescribeRocketMQRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQRoles") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQRoles require credential") @@ -5396,6 +5732,7 @@ func (c *Client) DescribeRocketMQSmoothMigrationTaskWithContext(ctx context.Cont if request == nil { request = NewDescribeRocketMQSmoothMigrationTaskRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQSmoothMigrationTask") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQSmoothMigrationTask require credential") @@ -5428,6 +5765,10 @@ func NewDescribeRocketMQSmoothMigrationTaskListResponse() (response *DescribeRoc } // DescribeRocketMQSmoothMigrationTaskList +// 平滑迁移相关接口已迁移至trocket产品下,该接口已废弃 +// +// +// // 用于查询RocketMQ平滑迁移任务列表 // // 可能返回的错误码: @@ -5437,6 +5778,10 @@ func (c *Client) DescribeRocketMQSmoothMigrationTaskList(request *DescribeRocket } // DescribeRocketMQSmoothMigrationTaskList +// 平滑迁移相关接口已迁移至trocket产品下,该接口已废弃 +// +// +// // 用于查询RocketMQ平滑迁移任务列表 // // 可能返回的错误码: @@ -5445,6 +5790,7 @@ func (c *Client) DescribeRocketMQSmoothMigrationTaskListWithContext(ctx context. if request == nil { request = NewDescribeRocketMQSmoothMigrationTaskListRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQSmoothMigrationTaskList") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQSmoothMigrationTaskList require credential") @@ -5477,6 +5823,10 @@ func NewDescribeRocketMQSourceClusterGroupListResponse() (response *DescribeRock } // DescribeRocketMQSourceClusterGroupList +// 平滑迁移相关接口已迁移至trocket产品下,该接口已废弃 +// +// +// // 平滑迁移过程获取源集群group列表接口 // // 可能返回的错误码: @@ -5486,6 +5836,10 @@ func (c *Client) DescribeRocketMQSourceClusterGroupList(request *DescribeRocketM } // DescribeRocketMQSourceClusterGroupList +// 平滑迁移相关接口已迁移至trocket产品下,该接口已废弃 +// +// +// // 平滑迁移过程获取源集群group列表接口 // // 可能返回的错误码: @@ -5494,6 +5848,7 @@ func (c *Client) DescribeRocketMQSourceClusterGroupListWithContext(ctx context.C if request == nil { request = NewDescribeRocketMQSourceClusterGroupListRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQSourceClusterGroupList") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQSourceClusterGroupList require credential") @@ -5526,6 +5881,10 @@ func NewDescribeRocketMQSourceClusterTopicListResponse() (response *DescribeRock } // DescribeRocketMQSourceClusterTopicList +// 平滑迁移相关接口已迁移至trocket产品下,该接口已废弃 +// +// +// // 平滑迁移过程获取源集群topic列表接口 // // 可能返回的错误码: @@ -5535,6 +5894,10 @@ func (c *Client) DescribeRocketMQSourceClusterTopicList(request *DescribeRocketM } // DescribeRocketMQSourceClusterTopicList +// 平滑迁移相关接口已迁移至trocket产品下,该接口已废弃 +// +// +// // 平滑迁移过程获取源集群topic列表接口 // // 可能返回的错误码: @@ -5543,6 +5906,7 @@ func (c *Client) DescribeRocketMQSourceClusterTopicListWithContext(ctx context.C if request == nil { request = NewDescribeRocketMQSourceClusterTopicListRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQSourceClusterTopicList") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQSourceClusterTopicList require credential") @@ -5596,6 +5960,7 @@ func (c *Client) DescribeRocketMQSubscriptionsWithContext(ctx context.Context, r if request == nil { request = NewDescribeRocketMQSubscriptionsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQSubscriptions") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQSubscriptions require credential") @@ -5608,6 +5973,56 @@ func (c *Client) DescribeRocketMQSubscriptionsWithContext(ctx context.Context, r return } +func NewDescribeRocketMQTopUsagesRequest() (request *DescribeRocketMQTopUsagesRequest) { + request = &DescribeRocketMQTopUsagesRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRocketMQTopUsages") + + + return +} + +func NewDescribeRocketMQTopUsagesResponse() (response *DescribeRocketMQTopUsagesResponse) { + response = &DescribeRocketMQTopUsagesResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeRocketMQTopUsages +// 用于获取RocketMQ指标排序列表,比如集群实例下占用存储空间最多的主题排序。 +// +// 可能返回的错误码: +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) DescribeRocketMQTopUsages(request *DescribeRocketMQTopUsagesRequest) (response *DescribeRocketMQTopUsagesResponse, err error) { + return c.DescribeRocketMQTopUsagesWithContext(context.Background(), request) +} + +// DescribeRocketMQTopUsages +// 用于获取RocketMQ指标排序列表,比如集群实例下占用存储空间最多的主题排序。 +// +// 可能返回的错误码: +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) DescribeRocketMQTopUsagesWithContext(ctx context.Context, request *DescribeRocketMQTopUsagesRequest) (response *DescribeRocketMQTopUsagesResponse, err error) { + if request == nil { + request = NewDescribeRocketMQTopUsagesRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQTopUsages") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeRocketMQTopUsages require credential") + } + + request.SetContext(ctx) + + response = NewDescribeRocketMQTopUsagesResponse() + err = c.Send(request, response) + return +} + func NewDescribeRocketMQTopicMsgsRequest() (request *DescribeRocketMQTopicMsgsRequest) { request = &DescribeRocketMQTopicMsgsRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -5649,6 +6064,7 @@ func (c *Client) DescribeRocketMQTopicMsgsWithContext(ctx context.Context, reque if request == nil { request = NewDescribeRocketMQTopicMsgsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQTopicMsgs") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQTopicMsgs require credential") @@ -5661,6 +6077,60 @@ func (c *Client) DescribeRocketMQTopicMsgsWithContext(ctx context.Context, reque return } +func NewDescribeRocketMQTopicStatsRequest() (request *DescribeRocketMQTopicStatsRequest) { + request = &DescribeRocketMQTopicStatsRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRocketMQTopicStats") + + + return +} + +func NewDescribeRocketMQTopicStatsResponse() (response *DescribeRocketMQTopicStatsResponse) { + response = &DescribeRocketMQTopicStatsResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeRocketMQTopicStats +// 获取Topic生产详情列表 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) DescribeRocketMQTopicStats(request *DescribeRocketMQTopicStatsRequest) (response *DescribeRocketMQTopicStatsResponse, err error) { + return c.DescribeRocketMQTopicStatsWithContext(context.Background(), request) +} + +// DescribeRocketMQTopicStats +// 获取Topic生产详情列表 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) DescribeRocketMQTopicStatsWithContext(ctx context.Context, request *DescribeRocketMQTopicStatsRequest) (response *DescribeRocketMQTopicStatsResponse, err error) { + if request == nil { + request = NewDescribeRocketMQTopicStatsRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQTopicStats") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeRocketMQTopicStats require credential") + } + + request.SetContext(ctx) + + response = NewDescribeRocketMQTopicStatsResponse() + err = c.Send(request, response) + return +} + func NewDescribeRocketMQTopicsRequest() (request *DescribeRocketMQTopicsRequest) { request = &DescribeRocketMQTopicsRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -5712,6 +6182,7 @@ func (c *Client) DescribeRocketMQTopicsWithContext(ctx context.Context, request if request == nil { request = NewDescribeRocketMQTopicsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQTopics") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQTopics require credential") @@ -5724,6 +6195,64 @@ func (c *Client) DescribeRocketMQTopicsWithContext(ctx context.Context, request return } +func NewDescribeRocketMQTopicsByGroupRequest() (request *DescribeRocketMQTopicsByGroupRequest) { + request = &DescribeRocketMQTopicsByGroupRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "DescribeRocketMQTopicsByGroup") + + + return +} + +func NewDescribeRocketMQTopicsByGroupResponse() (response *DescribeRocketMQTopicsByGroupResponse) { + response = &DescribeRocketMQTopicsByGroupResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// DescribeRocketMQTopicsByGroup +// 获取指定消费组下订阅的主题列表 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND = "ResourceNotFound" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) DescribeRocketMQTopicsByGroup(request *DescribeRocketMQTopicsByGroupRequest) (response *DescribeRocketMQTopicsByGroupResponse, err error) { + return c.DescribeRocketMQTopicsByGroupWithContext(context.Background(), request) +} + +// DescribeRocketMQTopicsByGroup +// 获取指定消费组下订阅的主题列表 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND = "ResourceNotFound" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) DescribeRocketMQTopicsByGroupWithContext(ctx context.Context, request *DescribeRocketMQTopicsByGroupRequest) (response *DescribeRocketMQTopicsByGroupResponse, err error) { + if request == nil { + request = NewDescribeRocketMQTopicsByGroupRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQTopicsByGroup") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeRocketMQTopicsByGroup require credential") + } + + request.SetContext(ctx) + + response = NewDescribeRocketMQTopicsByGroupResponse() + err = c.Send(request, response) + return +} + func NewDescribeRocketMQVipInstanceDetailRequest() (request *DescribeRocketMQVipInstanceDetailRequest) { request = &DescribeRocketMQVipInstanceDetailRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -5773,6 +6302,7 @@ func (c *Client) DescribeRocketMQVipInstanceDetailWithContext(ctx context.Contex if request == nil { request = NewDescribeRocketMQVipInstanceDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQVipInstanceDetail") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQVipInstanceDetail require credential") @@ -5834,6 +6364,7 @@ func (c *Client) DescribeRocketMQVipInstancesWithContext(ctx context.Context, re if request == nil { request = NewDescribeRocketMQVipInstancesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRocketMQVipInstances") if c.GetCredential() == nil { return nil, errors.New("DescribeRocketMQVipInstances require credential") @@ -5893,6 +6424,7 @@ func (c *Client) DescribeRolesWithContext(ctx context.Context, request *Describe if request == nil { request = NewDescribeRolesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeRoles") if c.GetCredential() == nil { return nil, errors.New("DescribeRoles require credential") @@ -5960,6 +6492,7 @@ func (c *Client) DescribeSubscriptionsWithContext(ctx context.Context, request * if request == nil { request = NewDescribeSubscriptionsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeSubscriptions") if c.GetCredential() == nil { return nil, errors.New("DescribeSubscriptions require credential") @@ -5995,7 +6528,10 @@ func NewDescribeTopicMsgsResponse() (response *DescribeTopicMsgsResponse) { // 消息查询 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// LIMITEXCEEDED_MSGTIME = "LimitExceeded.MsgTime" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" // RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" @@ -6009,7 +6545,10 @@ func (c *Client) DescribeTopicMsgs(request *DescribeTopicMsgsRequest) (response // 消息查询 // // 可能返回的错误码: +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// LIMITEXCEEDED_MSGTIME = "LimitExceeded.MsgTime" // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" // RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" @@ -6019,6 +6558,7 @@ func (c *Client) DescribeTopicMsgsWithContext(ctx context.Context, request *Desc if request == nil { request = NewDescribeTopicMsgsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeTopicMsgs") if c.GetCredential() == nil { return nil, errors.New("DescribeTopicMsgs require credential") @@ -6062,36 +6602,99 @@ func NewDescribeTopicsResponse() (response *DescribeTopicsResponse) { // MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" // RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" -func (c *Client) DescribeTopics(request *DescribeTopicsRequest) (response *DescribeTopicsResponse, err error) { - return c.DescribeTopicsWithContext(context.Background(), request) +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) DescribeTopics(request *DescribeTopicsRequest) (response *DescribeTopicsResponse, err error) { + return c.DescribeTopicsWithContext(context.Background(), request) +} + +// DescribeTopics +// 获取环境下主题列表 +// +// 可能返回的错误码: +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" +// FAILEDOPERATION = "FailedOperation" +// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" +// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" +// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) DescribeTopicsWithContext(ctx context.Context, request *DescribeTopicsRequest) (response *DescribeTopicsResponse, err error) { + if request == nil { + request = NewDescribeTopicsRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "DescribeTopics") + + if c.GetCredential() == nil { + return nil, errors.New("DescribeTopics require credential") + } + + request.SetContext(ctx) + + response = NewDescribeTopicsResponse() + err = c.Send(request, response) + return +} + +func NewExecuteDisasterRecoveryRequest() (request *ExecuteDisasterRecoveryRequest) { + request = &ExecuteDisasterRecoveryRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "ExecuteDisasterRecovery") + + + return +} + +func NewExecuteDisasterRecoveryResponse() (response *ExecuteDisasterRecoveryResponse) { + response = &ExecuteDisasterRecoveryResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ExecuteDisasterRecovery +// 执行域名异地访问切换,域名的访问指向将切换至备份集群。 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// RESOURCENOTFOUND = "ResourceNotFound" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +// RESOURCENOTFOUND_DISASTERREPLICATELINK = "ResourceNotFound.DisasterReplicateLink" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) ExecuteDisasterRecovery(request *ExecuteDisasterRecoveryRequest) (response *ExecuteDisasterRecoveryResponse, err error) { + return c.ExecuteDisasterRecoveryWithContext(context.Background(), request) } -// DescribeTopics -// 获取环境下主题列表 +// ExecuteDisasterRecovery +// 执行域名异地访问切换,域名的访问指向将切换至备份集群。 // // 可能返回的错误码: -// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" -// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" -// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" -// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" -// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" -// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// RESOURCENOTFOUND = "ResourceNotFound" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" -func (c *Client) DescribeTopicsWithContext(ctx context.Context, request *DescribeTopicsRequest) (response *DescribeTopicsResponse, err error) { +// RESOURCENOTFOUND_DISASTERREPLICATELINK = "ResourceNotFound.DisasterReplicateLink" +// UNSUPPORTEDOPERATION = "UnsupportedOperation" +func (c *Client) ExecuteDisasterRecoveryWithContext(ctx context.Context, request *ExecuteDisasterRecoveryRequest) (response *ExecuteDisasterRecoveryResponse, err error) { if request == nil { - request = NewDescribeTopicsRequest() + request = NewExecuteDisasterRecoveryRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ExecuteDisasterRecovery") if c.GetCredential() == nil { - return nil, errors.New("DescribeTopics require credential") + return nil, errors.New("ExecuteDisasterRecovery require credential") } request.SetContext(ctx) - response = NewDescribeTopicsResponse() + response = NewExecuteDisasterRecoveryResponse() err = c.Send(request, response) return } @@ -6137,6 +6740,7 @@ func (c *Client) ExportRocketMQMessageDetailWithContext(ctx context.Context, req if request == nil { request = NewExportRocketMQMessageDetailRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ExportRocketMQMessageDetail") if c.GetCredential() == nil { return nil, errors.New("ExportRocketMQMessageDetail require credential") @@ -6149,169 +6753,200 @@ func (c *Client) ExportRocketMQMessageDetailWithContext(ctx context.Context, req return } -func NewImportRocketMQConsumerGroupsRequest() (request *ImportRocketMQConsumerGroupsRequest) { - request = &ImportRocketMQConsumerGroupsRequest{ +func NewGetTopicListRequest() (request *GetTopicListRequest) { + request = &GetTopicListRequest{ BaseRequest: &tchttp.BaseRequest{}, } - request.Init().WithApiInfo("tdmq", APIVersion, "ImportRocketMQConsumerGroups") + request.Init().WithApiInfo("tdmq", APIVersion, "GetTopicList") return } -func NewImportRocketMQConsumerGroupsResponse() (response *ImportRocketMQConsumerGroupsResponse) { - response = &ImportRocketMQConsumerGroupsResponse{ +func NewGetTopicListResponse() (response *GetTopicListResponse) { + response = &GetTopicListResponse{ BaseResponse: &tchttp.BaseResponse{}, } return } -// ImportRocketMQConsumerGroups -// 输入迁移任务id和要导入的Group,导入后台 +// GetTopicList +// 获取环境下主题列表 // // 可能返回的错误码: +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" -// INTERNALERROR_FAILEDOPERATION = "InternalError.FailedOperation" +// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" +// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" +// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) ImportRocketMQConsumerGroups(request *ImportRocketMQConsumerGroupsRequest) (response *ImportRocketMQConsumerGroupsResponse, err error) { - return c.ImportRocketMQConsumerGroupsWithContext(context.Background(), request) +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) GetTopicList(request *GetTopicListRequest) (response *GetTopicListResponse, err error) { + return c.GetTopicListWithContext(context.Background(), request) } -// ImportRocketMQConsumerGroups -// 输入迁移任务id和要导入的Group,导入后台 +// GetTopicList +// 获取环境下主题列表 // // 可能返回的错误码: +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" -// INTERNALERROR_FAILEDOPERATION = "InternalError.FailedOperation" +// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" +// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" +// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) ImportRocketMQConsumerGroupsWithContext(ctx context.Context, request *ImportRocketMQConsumerGroupsRequest) (response *ImportRocketMQConsumerGroupsResponse, err error) { +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) GetTopicListWithContext(ctx context.Context, request *GetTopicListRequest) (response *GetTopicListResponse, err error) { if request == nil { - request = NewImportRocketMQConsumerGroupsRequest() + request = NewGetTopicListRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "GetTopicList") if c.GetCredential() == nil { - return nil, errors.New("ImportRocketMQConsumerGroups require credential") + return nil, errors.New("GetTopicList require credential") } request.SetContext(ctx) - response = NewImportRocketMQConsumerGroupsResponse() + response = NewGetTopicListResponse() err = c.Send(request, response) return } -func NewImportRocketMQTopicsRequest() (request *ImportRocketMQTopicsRequest) { - request = &ImportRocketMQTopicsRequest{ +func NewImportRocketMQConsumerGroupsRequest() (request *ImportRocketMQConsumerGroupsRequest) { + request = &ImportRocketMQConsumerGroupsRequest{ BaseRequest: &tchttp.BaseRequest{}, } - request.Init().WithApiInfo("tdmq", APIVersion, "ImportRocketMQTopics") + request.Init().WithApiInfo("tdmq", APIVersion, "ImportRocketMQConsumerGroups") return } -func NewImportRocketMQTopicsResponse() (response *ImportRocketMQTopicsResponse) { - response = &ImportRocketMQTopicsResponse{ +func NewImportRocketMQConsumerGroupsResponse() (response *ImportRocketMQConsumerGroupsResponse) { + response = &ImportRocketMQConsumerGroupsResponse{ BaseResponse: &tchttp.BaseResponse{}, } return } -// ImportRocketMQTopics -// 导入topic列表 +// ImportRocketMQConsumerGroups +// 输入迁移任务id和要导入的Group,导入后台 // // 可能返回的错误码: +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" -// INTERNALERROR_FAILEDOPERATION = "InternalError.FailedOperation" +// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" +// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" +// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) ImportRocketMQTopics(request *ImportRocketMQTopicsRequest) (response *ImportRocketMQTopicsResponse, err error) { - return c.ImportRocketMQTopicsWithContext(context.Background(), request) +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) ImportRocketMQConsumerGroups(request *ImportRocketMQConsumerGroupsRequest) (response *ImportRocketMQConsumerGroupsResponse, err error) { + return c.ImportRocketMQConsumerGroupsWithContext(context.Background(), request) } -// ImportRocketMQTopics -// 导入topic列表 +// ImportRocketMQConsumerGroups +// 输入迁移任务id和要导入的Group,导入后台 // // 可能返回的错误码: +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" -// INTERNALERROR_FAILEDOPERATION = "InternalError.FailedOperation" +// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" +// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" +// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" // RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) ImportRocketMQTopicsWithContext(ctx context.Context, request *ImportRocketMQTopicsRequest) (response *ImportRocketMQTopicsResponse, err error) { +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) ImportRocketMQConsumerGroupsWithContext(ctx context.Context, request *ImportRocketMQConsumerGroupsRequest) (response *ImportRocketMQConsumerGroupsResponse, err error) { if request == nil { - request = NewImportRocketMQTopicsRequest() + request = NewImportRocketMQConsumerGroupsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ImportRocketMQConsumerGroups") if c.GetCredential() == nil { - return nil, errors.New("ImportRocketMQTopics require credential") + return nil, errors.New("ImportRocketMQConsumerGroups require credential") } request.SetContext(ctx) - response = NewImportRocketMQTopicsResponse() + response = NewImportRocketMQConsumerGroupsResponse() err = c.Send(request, response) return } -func NewModifyAMQPClusterRequest() (request *ModifyAMQPClusterRequest) { - request = &ModifyAMQPClusterRequest{ +func NewImportRocketMQTopicsRequest() (request *ImportRocketMQTopicsRequest) { + request = &ImportRocketMQTopicsRequest{ BaseRequest: &tchttp.BaseRequest{}, } - request.Init().WithApiInfo("tdmq", APIVersion, "ModifyAMQPCluster") + request.Init().WithApiInfo("tdmq", APIVersion, "ImportRocketMQTopics") return } -func NewModifyAMQPClusterResponse() (response *ModifyAMQPClusterResponse) { - response = &ModifyAMQPClusterResponse{ +func NewImportRocketMQTopicsResponse() (response *ImportRocketMQTopicsResponse) { + response = &ImportRocketMQTopicsResponse{ BaseResponse: &tchttp.BaseResponse{}, } return } -// ModifyAMQPCluster -// 更新Amqp集群信息 +// ImportRocketMQTopics +// 导入topic列表 // // 可能返回的错误码: +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" -// INTERNALERROR = "InternalError" -// INVALIDPARAMETER = "InvalidParameter" -// LIMITEXCEEDED = "LimitExceeded" -// RESOURCEINUSE = "ResourceInUse" -// RESOURCEINSUFFICIENT = "ResourceInsufficient" -// RESOURCENOTFOUND = "ResourceNotFound" -func (c *Client) ModifyAMQPCluster(request *ModifyAMQPClusterRequest) (response *ModifyAMQPClusterResponse, err error) { - return c.ModifyAMQPClusterWithContext(context.Background(), request) +// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" +// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" +// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) ImportRocketMQTopics(request *ImportRocketMQTopicsRequest) (response *ImportRocketMQTopicsResponse, err error) { + return c.ImportRocketMQTopicsWithContext(context.Background(), request) } -// ModifyAMQPCluster -// 更新Amqp集群信息 +// ImportRocketMQTopics +// 导入topic列表 // // 可能返回的错误码: +// AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" -// INTERNALERROR = "InternalError" -// INVALIDPARAMETER = "InvalidParameter" -// LIMITEXCEEDED = "LimitExceeded" -// RESOURCEINUSE = "ResourceInUse" -// RESOURCEINSUFFICIENT = "ResourceInsufficient" -// RESOURCENOTFOUND = "ResourceNotFound" -func (c *Client) ModifyAMQPClusterWithContext(ctx context.Context, request *ModifyAMQPClusterRequest) (response *ModifyAMQPClusterResponse, err error) { +// INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" +// INVALIDPARAMETER_INVALIDADMINURL = "InvalidParameter.InvalidAdminUrl" +// INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" +// MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" +// RESOURCENOTFOUND_BROKERCLUSTER = "ResourceNotFound.BrokerCluster" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +// RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" +func (c *Client) ImportRocketMQTopicsWithContext(ctx context.Context, request *ImportRocketMQTopicsRequest) (response *ImportRocketMQTopicsResponse, err error) { if request == nil { - request = NewModifyAMQPClusterRequest() + request = NewImportRocketMQTopicsRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ImportRocketMQTopics") if c.GetCredential() == nil { - return nil, errors.New("ModifyAMQPCluster require credential") + return nil, errors.New("ImportRocketMQTopics require credential") } request.SetContext(ctx) - response = NewModifyAMQPClusterResponse() + response = NewImportRocketMQTopicsResponse() err = c.Send(request, response) return } @@ -6340,6 +6975,9 @@ func NewModifyClusterResponse() (response *ModifyClusterResponse) { // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_MODIFYCLUSTER = "FailedOperation.ModifyCluster" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INVALIDPARAMETERVALUE_CLUSTERNAMEDUPLICATION = "InvalidParameterValue.ClusterNameDuplication" // MISSINGPARAMETER = "MissingParameter" // RESOURCEUNAVAILABLE_FUNDREQUIRED = "ResourceUnavailable.FundRequired" @@ -6352,6 +6990,9 @@ func (c *Client) ModifyCluster(request *ModifyClusterRequest) (response *ModifyC // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_MODIFYCLUSTER = "FailedOperation.ModifyCluster" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // INVALIDPARAMETERVALUE_CLUSTERNAMEDUPLICATION = "InvalidParameterValue.ClusterNameDuplication" // MISSINGPARAMETER = "MissingParameter" // RESOURCEUNAVAILABLE_FUNDREQUIRED = "ResourceUnavailable.FundRequired" @@ -6359,6 +7000,7 @@ func (c *Client) ModifyClusterWithContext(ctx context.Context, request *ModifyCl if request == nil { request = NewModifyClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyCluster") if c.GetCredential() == nil { return nil, errors.New("ModifyCluster require credential") @@ -6420,6 +7062,7 @@ func (c *Client) ModifyCmqQueueAttributeWithContext(ctx context.Context, request if request == nil { request = NewModifyCmqQueueAttributeRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyCmqQueueAttribute") if c.GetCredential() == nil { return nil, errors.New("ModifyCmqQueueAttribute require credential") @@ -6469,6 +7112,7 @@ func (c *Client) ModifyCmqSubscriptionAttributeWithContext(ctx context.Context, if request == nil { request = NewModifyCmqSubscriptionAttributeRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyCmqSubscriptionAttribute") if c.GetCredential() == nil { return nil, errors.New("ModifyCmqSubscriptionAttribute require credential") @@ -6520,6 +7164,7 @@ func (c *Client) ModifyCmqTopicAttributeWithContext(ctx context.Context, request if request == nil { request = NewModifyCmqTopicAttributeRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyCmqTopicAttribute") if c.GetCredential() == nil { return nil, errors.New("ModifyCmqTopicAttribute require credential") @@ -6601,6 +7246,7 @@ func (c *Client) ModifyEnvironmentAttributesWithContext(ctx context.Context, req if request == nil { request = NewModifyEnvironmentAttributesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyEnvironmentAttributes") if c.GetCredential() == nil { return nil, errors.New("ModifyEnvironmentAttributes require credential") @@ -6664,6 +7310,7 @@ func (c *Client) ModifyEnvironmentRoleWithContext(ctx context.Context, request * if request == nil { request = NewModifyEnvironmentRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyEnvironmentRole") if c.GetCredential() == nil { return nil, errors.New("ModifyEnvironmentRole require credential") @@ -6676,51 +7323,114 @@ func (c *Client) ModifyEnvironmentRoleWithContext(ctx context.Context, request * return } -func NewModifyPublicNetworkAccessPointRequest() (request *ModifyPublicNetworkAccessPointRequest) { - request = &ModifyPublicNetworkAccessPointRequest{ +func NewModifyPublicNetworkSecurityPolicyRequest() (request *ModifyPublicNetworkSecurityPolicyRequest) { + request = &ModifyPublicNetworkSecurityPolicyRequest{ BaseRequest: &tchttp.BaseRequest{}, } - request.Init().WithApiInfo("tdmq", APIVersion, "ModifyPublicNetworkAccessPoint") + request.Init().WithApiInfo("tdmq", APIVersion, "ModifyPublicNetworkSecurityPolicy") return } -func NewModifyPublicNetworkAccessPointResponse() (response *ModifyPublicNetworkAccessPointResponse) { - response = &ModifyPublicNetworkAccessPointResponse{ +func NewModifyPublicNetworkSecurityPolicyResponse() (response *ModifyPublicNetworkSecurityPolicyResponse) { + response = &ModifyPublicNetworkSecurityPolicyResponse{ BaseResponse: &tchttp.BaseResponse{}, } return } -// ModifyPublicNetworkAccessPoint -// RabbitMQ专享版修改公网管控台,vpc15672开关 +// ModifyPublicNetworkSecurityPolicy +// 修改pulsar专业版公网安全策略 // // 可能返回的错误码: -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) ModifyPublicNetworkAccessPoint(request *ModifyPublicNetworkAccessPointRequest) (response *ModifyPublicNetworkAccessPointResponse, err error) { - return c.ModifyPublicNetworkAccessPointWithContext(context.Background(), request) +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_INVALIDEXISTPUBLICACCESSPOINTERROR = "FailedOperation.InvalidExistPublicAccessPointError" +// FAILEDOPERATION_INVALIDWHITELISTERROR = "FailedOperation.InvalidWhiteListError" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// INTERNALERROR = "InternalError" +func (c *Client) ModifyPublicNetworkSecurityPolicy(request *ModifyPublicNetworkSecurityPolicyRequest) (response *ModifyPublicNetworkSecurityPolicyResponse, err error) { + return c.ModifyPublicNetworkSecurityPolicyWithContext(context.Background(), request) } -// ModifyPublicNetworkAccessPoint -// RabbitMQ专享版修改公网管控台,vpc15672开关 +// ModifyPublicNetworkSecurityPolicy +// 修改pulsar专业版公网安全策略 // // 可能返回的错误码: -// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" -func (c *Client) ModifyPublicNetworkAccessPointWithContext(ctx context.Context, request *ModifyPublicNetworkAccessPointRequest) (response *ModifyPublicNetworkAccessPointResponse, err error) { +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" +// FAILEDOPERATION_INVALIDEXISTPUBLICACCESSPOINTERROR = "FailedOperation.InvalidExistPublicAccessPointError" +// FAILEDOPERATION_INVALIDWHITELISTERROR = "FailedOperation.InvalidWhiteListError" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// INTERNALERROR = "InternalError" +func (c *Client) ModifyPublicNetworkSecurityPolicyWithContext(ctx context.Context, request *ModifyPublicNetworkSecurityPolicyRequest) (response *ModifyPublicNetworkSecurityPolicyResponse, err error) { + if request == nil { + request = NewModifyPublicNetworkSecurityPolicyRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyPublicNetworkSecurityPolicy") + + if c.GetCredential() == nil { + return nil, errors.New("ModifyPublicNetworkSecurityPolicy require credential") + } + + request.SetContext(ctx) + + response = NewModifyPublicNetworkSecurityPolicyResponse() + err = c.Send(request, response) + return +} + +func NewModifyRabbitMQPermissionRequest() (request *ModifyRabbitMQPermissionRequest) { + request = &ModifyRabbitMQPermissionRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "ModifyRabbitMQPermission") + + + return +} + +func NewModifyRabbitMQPermissionResponse() (response *ModifyRabbitMQPermissionResponse) { + response = &ModifyRabbitMQPermissionResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyRabbitMQPermission +// 修改RabbitMQ的权限 +// +// 可能返回的错误码: +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND = "ResourceNotFound" +func (c *Client) ModifyRabbitMQPermission(request *ModifyRabbitMQPermissionRequest) (response *ModifyRabbitMQPermissionResponse, err error) { + return c.ModifyRabbitMQPermissionWithContext(context.Background(), request) +} + +// ModifyRabbitMQPermission +// 修改RabbitMQ的权限 +// +// 可能返回的错误码: +// INTERNALERROR = "InternalError" +// INVALIDPARAMETER = "InvalidParameter" +// RESOURCENOTFOUND = "ResourceNotFound" +func (c *Client) ModifyRabbitMQPermissionWithContext(ctx context.Context, request *ModifyRabbitMQPermissionRequest) (response *ModifyRabbitMQPermissionResponse, err error) { if request == nil { - request = NewModifyPublicNetworkAccessPointRequest() + request = NewModifyRabbitMQPermissionRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRabbitMQPermission") if c.GetCredential() == nil { - return nil, errors.New("ModifyPublicNetworkAccessPoint require credential") + return nil, errors.New("ModifyRabbitMQPermission require credential") } request.SetContext(ctx) - response = NewModifyPublicNetworkAccessPointResponse() + response = NewModifyRabbitMQPermissionResponse() err = c.Send(request, response) return } @@ -6766,6 +7476,7 @@ func (c *Client) ModifyRabbitMQUserWithContext(ctx context.Context, request *Mod if request == nil { request = NewModifyRabbitMQUserRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRabbitMQUser") if c.GetCredential() == nil { return nil, errors.New("ModifyRabbitMQUser require credential") @@ -6819,6 +7530,7 @@ func (c *Client) ModifyRabbitMQVipInstanceWithContext(ctx context.Context, reque if request == nil { request = NewModifyRabbitMQVipInstanceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRabbitMQVipInstance") if c.GetCredential() == nil { return nil, errors.New("ModifyRabbitMQVipInstance require credential") @@ -6872,6 +7584,7 @@ func (c *Client) ModifyRabbitMQVirtualHostWithContext(ctx context.Context, reque if request == nil { request = NewModifyRabbitMQVirtualHostRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRabbitMQVirtualHost") if c.GetCredential() == nil { return nil, errors.New("ModifyRabbitMQVirtualHost require credential") @@ -6937,6 +7650,7 @@ func (c *Client) ModifyRocketMQClusterWithContext(ctx context.Context, request * if request == nil { request = NewModifyRocketMQClusterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQCluster") if c.GetCredential() == nil { return nil, errors.New("ModifyRocketMQCluster require credential") @@ -6998,6 +7712,7 @@ func (c *Client) ModifyRocketMQEnvironmentRoleWithContext(ctx context.Context, r if request == nil { request = NewModifyRocketMQEnvironmentRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQEnvironmentRole") if c.GetCredential() == nil { return nil, errors.New("ModifyRocketMQEnvironmentRole require credential") @@ -7055,6 +7770,7 @@ func (c *Client) ModifyRocketMQGroupWithContext(ctx context.Context, request *Mo if request == nil { request = NewModifyRocketMQGroupRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQGroup") if c.GetCredential() == nil { return nil, errors.New("ModifyRocketMQGroup require credential") @@ -7067,6 +7783,56 @@ func (c *Client) ModifyRocketMQGroupWithContext(ctx context.Context, request *Mo return } +func NewModifyRocketMQInstanceRequest() (request *ModifyRocketMQInstanceRequest) { + request = &ModifyRocketMQInstanceRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "ModifyRocketMQInstance") + + + return +} + +func NewModifyRocketMQInstanceResponse() (response *ModifyRocketMQInstanceResponse) { + response = &ModifyRocketMQInstanceResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// ModifyRocketMQInstance +// 修改RocketMQ专享实例 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +func (c *Client) ModifyRocketMQInstance(request *ModifyRocketMQInstanceRequest) (response *ModifyRocketMQInstanceResponse, err error) { + return c.ModifyRocketMQInstanceWithContext(context.Background(), request) +} + +// ModifyRocketMQInstance +// 修改RocketMQ专享实例 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +func (c *Client) ModifyRocketMQInstanceWithContext(ctx context.Context, request *ModifyRocketMQInstanceRequest) (response *ModifyRocketMQInstanceResponse, err error) { + if request == nil { + request = NewModifyRocketMQInstanceRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQInstance") + + if c.GetCredential() == nil { + return nil, errors.New("ModifyRocketMQInstance require credential") + } + + request.SetContext(ctx) + + response = NewModifyRocketMQInstanceResponse() + err = c.Send(request, response) + return +} + func NewModifyRocketMQInstanceSpecRequest() (request *ModifyRocketMQInstanceSpecRequest) { request = &ModifyRocketMQInstanceSpecRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -7112,6 +7878,7 @@ func (c *Client) ModifyRocketMQInstanceSpecWithContext(ctx context.Context, requ if request == nil { request = NewModifyRocketMQInstanceSpecRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQInstanceSpec") if c.GetCredential() == nil { return nil, errors.New("ModifyRocketMQInstanceSpec require credential") @@ -7179,6 +7946,7 @@ func (c *Client) ModifyRocketMQNamespaceWithContext(ctx context.Context, request if request == nil { request = NewModifyRocketMQNamespaceRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQNamespace") if c.GetCredential() == nil { return nil, errors.New("ModifyRocketMQNamespace require credential") @@ -7242,6 +8010,7 @@ func (c *Client) ModifyRocketMQRoleWithContext(ctx context.Context, request *Mod if request == nil { request = NewModifyRocketMQRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQRole") if c.GetCredential() == nil { return nil, errors.New("ModifyRocketMQRole require credential") @@ -7301,6 +8070,7 @@ func (c *Client) ModifyRocketMQTopicWithContext(ctx context.Context, request *Mo if request == nil { request = NewModifyRocketMQTopicRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRocketMQTopic") if c.GetCredential() == nil { return nil, errors.New("ModifyRocketMQTopic require credential") @@ -7364,6 +8134,7 @@ func (c *Client) ModifyRoleWithContext(ctx context.Context, request *ModifyRoleR if request == nil { request = NewModifyRoleRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyRole") if c.GetCredential() == nil { return nil, errors.New("ModifyRole require credential") @@ -7401,7 +8172,9 @@ func NewModifyTopicResponse() (response *ModifyTopicResponse) { // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_GETTOPICPARTITIONSFAILED = "FailedOperation.GetTopicPartitionsFailed" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_UPDATETOPIC = "FailedOperation.UpdateTopic" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" @@ -7418,7 +8191,9 @@ func (c *Client) ModifyTopic(request *ModifyTopicRequest) (response *ModifyTopic // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_GETTOPICPARTITIONSFAILED = "FailedOperation.GetTopicPartitionsFailed" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" // FAILEDOPERATION_UPDATETOPIC = "FailedOperation.UpdateTopic" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" @@ -7429,6 +8204,7 @@ func (c *Client) ModifyTopicWithContext(ctx context.Context, request *ModifyTopi if request == nil { request = NewModifyTopicRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ModifyTopic") if c.GetCredential() == nil { return nil, errors.New("ModifyTopic require credential") @@ -7480,6 +8256,7 @@ func (c *Client) PublishCmqMsgWithContext(ctx context.Context, request *PublishC if request == nil { request = NewPublishCmqMsgRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "PublishCmqMsg") if c.GetCredential() == nil { return nil, errors.New("PublishCmqMsg require credential") @@ -7625,6 +8402,7 @@ func (c *Client) ReceiveMessageWithContext(ctx context.Context, request *Receive if request == nil { request = NewReceiveMessageRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ReceiveMessage") if c.GetCredential() == nil { return nil, errors.New("ReceiveMessage require credential") @@ -7694,6 +8472,7 @@ func (c *Client) ResetMsgSubOffsetByTimestampWithContext(ctx context.Context, re if request == nil { request = NewResetMsgSubOffsetByTimestampRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ResetMsgSubOffsetByTimestamp") if c.GetCredential() == nil { return nil, errors.New("ResetMsgSubOffsetByTimestamp require credential") @@ -7751,6 +8530,7 @@ func (c *Client) ResetRocketMQConsumerOffSetWithContext(ctx context.Context, req if request == nil { request = NewResetRocketMQConsumerOffSetRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "ResetRocketMQConsumerOffSet") if c.GetCredential() == nil { return nil, errors.New("ResetRocketMQConsumerOffSet require credential") @@ -7763,6 +8543,58 @@ func (c *Client) ResetRocketMQConsumerOffSetWithContext(ctx context.Context, req return } +func NewRetryRocketMQDlqMessageRequest() (request *RetryRocketMQDlqMessageRequest) { + request = &RetryRocketMQDlqMessageRequest{ + BaseRequest: &tchttp.BaseRequest{}, + } + + request.Init().WithApiInfo("tdmq", APIVersion, "RetryRocketMQDlqMessage") + + + return +} + +func NewRetryRocketMQDlqMessageResponse() (response *RetryRocketMQDlqMessageResponse) { + response = &RetryRocketMQDlqMessageResponse{ + BaseResponse: &tchttp.BaseResponse{}, + } + return + +} + +// RetryRocketMQDlqMessage +// 重发RocketMQ死信消息 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) RetryRocketMQDlqMessage(request *RetryRocketMQDlqMessageRequest) (response *RetryRocketMQDlqMessageResponse, err error) { + return c.RetryRocketMQDlqMessageWithContext(context.Background(), request) +} + +// RetryRocketMQDlqMessage +// 重发RocketMQ死信消息 +// +// 可能返回的错误码: +// FAILEDOPERATION = "FailedOperation" +// RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" +func (c *Client) RetryRocketMQDlqMessageWithContext(ctx context.Context, request *RetryRocketMQDlqMessageRequest) (response *RetryRocketMQDlqMessageResponse, err error) { + if request == nil { + request = NewRetryRocketMQDlqMessageRequest() + } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "RetryRocketMQDlqMessage") + + if c.GetCredential() == nil { + return nil, errors.New("RetryRocketMQDlqMessage require credential") + } + + request.SetContext(ctx) + + response = NewRetryRocketMQDlqMessageResponse() + err = c.Send(request, response) + return +} + func NewRewindCmqQueueRequest() (request *RewindCmqQueueRequest) { request = &RewindCmqQueueRequest{ BaseRequest: &tchttp.BaseRequest{}, @@ -7802,6 +8634,7 @@ func (c *Client) RewindCmqQueueWithContext(ctx context.Context, request *RewindC if request == nil { request = NewRewindCmqQueueRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "RewindCmqQueue") if c.GetCredential() == nil { return nil, errors.New("RewindCmqQueue require credential") @@ -7879,6 +8712,7 @@ func (c *Client) SendBatchMessagesWithContext(ctx context.Context, request *Send if request == nil { request = NewSendBatchMessagesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "SendBatchMessages") if c.GetCredential() == nil { return nil, errors.New("SendBatchMessages require credential") @@ -7932,6 +8766,7 @@ func (c *Client) SendCmqMsgWithContext(ctx context.Context, request *SendCmqMsgR if request == nil { request = NewSendCmqMsgRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "SendCmqMsg") if c.GetCredential() == nil { return nil, errors.New("SendCmqMsg require credential") @@ -8005,6 +8840,7 @@ func (c *Client) SendMessagesWithContext(ctx context.Context, request *SendMessa if request == nil { request = NewSendMessagesRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "SendMessages") if c.GetCredential() == nil { return nil, errors.New("SendMessages require credential") @@ -8042,7 +8878,10 @@ func NewSendMsgResponse() (response *SendMsgResponse) { // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_GETTOPICPARTITIONSFAILED = "FailedOperation.GetTopicPartitionsFailed" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_SENDMSG = "FailedOperation.SendMsg" // FAILEDOPERATION_SENDMSGFAILED = "FailedOperation.SendMsgFailed" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" @@ -8060,7 +8899,10 @@ func (c *Client) SendMsg(request *SendMsgRequest) (response *SendMsgResponse, er // 可能返回的错误码: // AUTHFAILURE_UNAUTHORIZEDOPERATION = "AuthFailure.UnauthorizedOperation" // FAILEDOPERATION = "FailedOperation" +// FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" // FAILEDOPERATION_GETTOPICPARTITIONSFAILED = "FailedOperation.GetTopicPartitionsFailed" +// FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" +// FAILEDOPERATION_SENDMSG = "FailedOperation.SendMsg" // FAILEDOPERATION_SENDMSGFAILED = "FailedOperation.SendMsgFailed" // INTERNALERROR_SYSTEMERROR = "InternalError.SystemError" // INVALIDPARAMETERVALUE_INVALIDPARAMS = "InvalidParameterValue.InvalidParams" @@ -8072,6 +8914,7 @@ func (c *Client) SendMsgWithContext(ctx context.Context, request *SendMsgRequest if request == nil { request = NewSendMsgRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "SendMsg") if c.GetCredential() == nil { return nil, errors.New("SendMsg require credential") @@ -8104,7 +8947,7 @@ func NewSendRocketMQMessageResponse() (response *SendRocketMQMessageResponse) { } // SendRocketMQMessage -// 发送RocketMQ消息 +// 发送 RocketMQ 消息,该接口仅用于控制台发送少量测试消息,不保证SLA,且云 API 存在限流,在真实业务场景下,请使用 RocketMQ SDK 发送消息。 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -8116,7 +8959,7 @@ func (c *Client) SendRocketMQMessage(request *SendRocketMQMessageRequest) (respo } // SendRocketMQMessage -// 发送RocketMQ消息 +// 发送 RocketMQ 消息,该接口仅用于控制台发送少量测试消息,不保证SLA,且云 API 存在限流,在真实业务场景下,请使用 RocketMQ SDK 发送消息。 // // 可能返回的错误码: // FAILEDOPERATION = "FailedOperation" @@ -8127,6 +8970,7 @@ func (c *Client) SendRocketMQMessageWithContext(ctx context.Context, request *Se if request == nil { request = NewSendRocketMQMessageRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "SendRocketMQMessage") if c.GetCredential() == nil { return nil, errors.New("SendRocketMQMessage require credential") @@ -8180,6 +9024,7 @@ func (c *Client) SetRocketMQPublicAccessPointWithContext(ctx context.Context, re if request == nil { request = NewSetRocketMQPublicAccessPointRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "SetRocketMQPublicAccessPoint") if c.GetCredential() == nil { return nil, errors.New("SetRocketMQPublicAccessPoint require credential") @@ -8229,6 +9074,7 @@ func (c *Client) UnbindCmqDeadLetterWithContext(ctx context.Context, request *Un if request == nil { request = NewUnbindCmqDeadLetterRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "UnbindCmqDeadLetter") if c.GetCredential() == nil { return nil, errors.New("UnbindCmqDeadLetter require credential") @@ -8280,6 +9126,7 @@ func (c *Client) VerifyRocketMQConsumeWithContext(ctx context.Context, request * if request == nil { request = NewVerifyRocketMQConsumeRequest() } + c.InitBaseRequest(&request.BaseRequest, "tdmq", APIVersion, "VerifyRocketMQConsume") if c.GetCredential() == nil { return nil, errors.New("VerifyRocketMQConsume require credential") diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/errors.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/errors.go index b17ef5585e..b6a8d0ece4 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/errors.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/errors.go @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. +// Copyright (c) 2017-2025 Tencent. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,6 +26,9 @@ const ( // 调用交易服务发生异常。 FAILEDOPERATION_CALLTRADE = "FailedOperation.CallTrade" + // 第三方云服务异常,请稍后重试 + FAILEDOPERATION_CLOUDSERVICE = "FailedOperation.CloudService" + // CMQ 后台服务错误。 FAILEDOPERATION_CMQBACKENDERROR = "FailedOperation.CmqBackendError" @@ -62,6 +65,9 @@ const ( // 删除集群失败。 FAILEDOPERATION_DELETECLUSTER = "FailedOperation.DeleteCluster" + // 群集删除保护已打开,删除群集失败。 + FAILEDOPERATION_DELETECLUSTERPROTECTION = "FailedOperation.DeleteClusterProtection" + // 删除环境角色失败。 FAILEDOPERATION_DELETEENVIRONMENTROLES = "FailedOperation.DeleteEnvironmentRoles" @@ -83,24 +89,51 @@ const ( // 查询订阅数据失败。 FAILEDOPERATION_DESCRIBESUBSCRIPTION = "FailedOperation.DescribeSubscription" + // 参数异常,下单失败 + FAILEDOPERATION_GENERATEDEALSANDPAYERROR = "FailedOperation.GenerateDealsAndPayError" + // 获取环境属性失败。 FAILEDOPERATION_GETENVIRONMENTATTRIBUTESFAILED = "FailedOperation.GetEnvironmentAttributesFailed" // 获取主题分区数失败。 FAILEDOPERATION_GETTOPICPARTITIONSFAILED = "FailedOperation.GetTopicPartitionsFailed" + // 实例已开启删除保护功能,如需进行删除操作,请关闭删除保护。 + FAILEDOPERATION_INSTANCECANNOTDELETE = "FailedOperation.InstanceCanNotDelete" + // 实例尚未就绪,请稍后再试。 FAILEDOPERATION_INSTANCENOTREADY = "FailedOperation.InstanceNotReady" + // 存量公网禁止修改 + FAILEDOPERATION_INVALIDEXISTPUBLICACCESSPOINTERROR = "FailedOperation.InvalidExistPublicAccessPointError" + + // 参数不合法 + FAILEDOPERATION_INVALIDWHITELISTERROR = "FailedOperation.InvalidWhiteListError" + + // 当前集群不支持设置该参数 + FAILEDOPERATION_ISOLATECONSUMERENABLE = "FailedOperation.IsolateConsumerEnable" + // 最大消息超过1MB。 FAILEDOPERATION_MAXMESSAGESIZEERROR = "FailedOperation.MaxMessageSizeError" // 上传的msgID错误。 FAILEDOPERATION_MESSAGEIDERROR = "FailedOperation.MessageIDError" + // 修改集群失败 + FAILEDOPERATION_MODIFYCLUSTER = "FailedOperation.ModifyCluster" + // 必须先清除关联命名空间才能继续操作。 FAILEDOPERATION_NAMESPACEINUSE = "FailedOperation.NamespaceInUse" + // 删除资源不存在 + FAILEDOPERATION_ONLINEREFUNDRESOURCENOTEXIT = "FailedOperation.OnlineRefundResourceNotExit" + + // 任务进行中,请稍后重试 + FAILEDOPERATION_OPERATELATER = "FailedOperation.OperateLater" + + // 产品信息不存在 + FAILEDOPERATION_PRODUCTNOTEXIST = "FailedOperation.ProductNotExist" + // PulsarAdminClient错误。 FAILEDOPERATION_PULSARADMINERROR = "FailedOperation.PulsarAdminError" @@ -110,6 +143,12 @@ const ( // 接收消息超时,请重试。 FAILEDOPERATION_RECEIVETIMEOUT = "FailedOperation.ReceiveTimeout" + // 跨地域复制校验不通过 + FAILEDOPERATION_REPLICATIONDESTCHECKFAILEDERROR = "FailedOperation.ReplicationDestCheckFailedError" + + // 跨地域复制检验不通过 + FAILEDOPERATION_REPLICATIONSOURCECHECKFAILEDERROR = "FailedOperation.ReplicationSourceCheckFailedError" + // 消息回溯设置失败。 FAILEDOPERATION_RESETMSGSUBOFFSETBYTIMESTAMPFAILED = "FailedOperation.ResetMsgSubOffsetByTimestampFailed" @@ -122,6 +161,9 @@ const ( // 消息发送超时。 FAILEDOPERATION_SENDMESSAGETIMEOUTERROR = "FailedOperation.SendMessageTimeoutError" + // 发送消息失败 + FAILEDOPERATION_SENDMSG = "FailedOperation.SendMsg" + // 发送消息失败。 FAILEDOPERATION_SENDMSGFAILED = "FailedOperation.SendMsgFailed" @@ -188,9 +230,15 @@ const ( // 没有获取到正确的 token。 INVALIDPARAMETER_TOKENNOTFOUND = "InvalidParameter.TokenNotFound" + // 无效的 vpc 信息或者子网信息 + INVALIDPARAMETER_VPC = "InvalidParameter.Vpc" + // 参数取值错误。 INVALIDPARAMETERVALUE = "InvalidParameterValue" + // AckTime参数错误 + INVALIDPARAMETERVALUE_ACKTIME = "InvalidParameterValue.AckTime" + // 至少需要提供一个参数。 INVALIDPARAMETERVALUE_ATLEASTONE = "InvalidParameterValue.AtLeastOne" @@ -218,6 +266,9 @@ const ( // 实例下环境数量超过限制。 LIMITEXCEEDED_ENVIRONMENTS = "LimitExceeded.Environments" + // 消息轨迹查询时间周期太长 + LIMITEXCEEDED_MSGTIME = "LimitExceeded.MsgTime" + // 实例下命名空间数量超过限额。 LIMITEXCEEDED_NAMESPACES = "LimitExceeded.Namespaces" @@ -239,6 +290,9 @@ const ( // 必要参数没有传递。 MISSINGPARAMETER_NEEDMOREPARAMS = "MissingParameter.NeedMoreParams" + // 标签信息缺失 + MISSINGPARAMETER_TAG = "MissingParameter.Tag" + // 订阅仍在消费中。 OPERATIONDENIED_CONSUMERRUNNING = "OperationDenied.ConsumerRunning" @@ -281,6 +335,9 @@ const ( // 集群不存在。 RESOURCENOTFOUND_CLUSTER = "ResourceNotFound.Cluster" + // 链路不存在 + RESOURCENOTFOUND_DISASTERREPLICATELINK = "ResourceNotFound.DisasterReplicateLink" + // 环境不存在。 RESOURCENOTFOUND_ENVIRONMENT = "ResourceNotFound.Environment" @@ -302,6 +359,9 @@ const ( // 命名空间不存在。 RESOURCENOTFOUND_NAMESPACE = "ResourceNotFound.Namespace" + // 命名空间不存在。 + RESOURCENOTFOUND_NAMSPACE = "ResourceNotFound.Namspace" + // 角色不存在。 RESOURCENOTFOUND_ROLE = "ResourceNotFound.Role" @@ -332,9 +392,15 @@ const ( // 未知参数错误。 UNKNOWNPARAMETER = "UnknownParameter" + // Policy 参数错误 + UNKNOWNPARAMETER_POLICY = "UnknownParameter.Policy" + // 操作不支持。 UNSUPPORTEDOPERATION = "UnsupportedOperation" // 该实例不支持降配操作。 UNSUPPORTEDOPERATION_INSTANCEDOWNGRADE = "UnsupportedOperation.InstanceDowngrade" + + // 当前集群不支持Unack 操作 + UNSUPPORTEDOPERATION_TOPICUNACK = "UnsupportedOperation.TopicUnack" ) diff --git a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/models.go b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/models.go index 1a892063e6..88310c5862 100644 --- a/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/models.go +++ b/vendor/github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217/models.go @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. +// Copyright (c) 2017-2025 Tencent. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -57,11 +57,9 @@ type AMQPClusterDetail struct { Config *AMQPClusterConfig `json:"Config,omitnil,omitempty" name:"Config"` // 标签 - // 注意:此字段可能返回 null,表示取不到有效值。 Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` // 集群状态,0:创建中,1:正常,2:销毁中,3:已删除,4: 隔离中,5:创建失败,6: 删除失败 - // 注意:此字段可能返回 null,表示取不到有效值。 Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` } @@ -139,8 +137,7 @@ func (r *AcknowledgeMessageRequest) FromJsonString(s string) error { // Predefined struct for user type AcknowledgeMessageResponseParams struct { - // 如果为“”,则说明没有错误返回 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 如果为"",则说明没有错误返回,否则返回具体的错误信息。 ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -168,6 +165,33 @@ type BindCluster struct { ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` } +type CertificateInfo struct { + // SSL证书管理中的id + CertificateId *string `json:"CertificateId,omitnil,omitempty" name:"CertificateId"` + + // 证书到期时间 + ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"` + + // 证书绑定的域名 + DomainName *string `json:"DomainName,omitnil,omitempty" name:"DomainName"` + + // 证书状态:0 已签发 + // 1 即将过期 + // 2 未启用 + // 3 已过期 + // 4 不可用 + Status *string `json:"Status,omitnil,omitempty" name:"Status"` + + // 证书类型:0:根证书,1:服务端证书 + Type *string `json:"Type,omitnil,omitempty" name:"Type"` + + // TencentCloud:SSL证书;Default:TDMQ官方默认证书 + Origin *string `json:"Origin,omitnil,omitempty" name:"Origin"` + + // 证书添加/更新时间 + ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"` +} + // Predefined struct for user type ClearCmqQueueRequestParams struct { // 队列名字,在单个地域同一账号下唯一。队列名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 @@ -283,6 +307,27 @@ func (r *ClearCmqSubscriptionFilterTagsResponse) FromJsonString(s string) error return json.Unmarshal([]byte(s), &r) } +type ClientSubscriptionInfo struct { + // 客户端ID + ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"` + + // 客户端IP + // 注意:此字段可能返回 null,表示取不到有效值。 + ClientAddr *string `json:"ClientAddr,omitnil,omitempty" name:"ClientAddr"` + + // 订阅主题 + // 注意:此字段可能返回 null,表示取不到有效值。 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` + + // 订阅表达式 + // 注意:此字段可能返回 null,表示取不到有效值。 + SubString *string `json:"SubString,omitnil,omitempty" name:"SubString"` + + // 订阅方式 + // 注意:此字段可能返回 null,表示取不到有效值。 + ExpressionType *string `json:"ExpressionType,omitnil,omitempty" name:"ExpressionType"` +} + type Cluster struct { // 集群Id。 ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` @@ -389,23 +434,22 @@ type Cluster struct { // 项目名字 // 注意:此字段可能返回 null,表示取不到有效值。 ProjectName *string `json:"ProjectName,omitnil,omitempty" name:"ProjectName"` + + // 是否支持升级专业版实例 + UpgradeProInstance *bool `json:"UpgradeProInstance,omitnil,omitempty" name:"UpgradeProInstance"` } type CmqDeadLetterPolicy struct { // 死信队列。 - // 注意:此字段可能返回 null,表示取不到有效值。 DeadLetterQueue *string `json:"DeadLetterQueue,omitnil,omitempty" name:"DeadLetterQueue"` - // 死信队列策略。 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 死信队列策略。0:最大接收次数;1:最大未消费时间 Policy *uint64 `json:"Policy,omitnil,omitempty" name:"Policy"` // 最大未消费过期时间。Policy为1时必选。范围300-43200,单位秒,需要小于消息最大保留时间MsgRetentionSeconds。 - // 注意:此字段可能返回 null,表示取不到有效值。 MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"` - // 最大接收次数。 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 最大接收次数。Policy为0时必选,范围在1到1000。 MaxReceiveCount *uint64 `json:"MaxReceiveCount,omitnil,omitempty" name:"MaxReceiveCount"` } @@ -415,7 +459,6 @@ type CmqDeadLetterSource struct { QueueId *string `json:"QueueId,omitnil,omitempty" name:"QueueId"` // 消息队列名字。 - // 注意:此字段可能返回 null,表示取不到有效值。 QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"` } @@ -427,54 +470,42 @@ type CmqQueue struct { QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"` // 每秒钟生产消息条数的限制,消费消息的大小是该值的1.1倍。 - // 注意:此字段可能返回 null,表示取不到有效值。 Qps *uint64 `json:"Qps,omitnil,omitempty" name:"Qps"` // 带宽限制。 - // 注意:此字段可能返回 null,表示取不到有效值。 Bps *uint64 `json:"Bps,omitnil,omitempty" name:"Bps"` - // 飞行消息最大保留时间。 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 飞行消息最大保留时间,需要小于消息保留周期。 MaxDelaySeconds *uint64 `json:"MaxDelaySeconds,omitnil,omitempty" name:"MaxDelaySeconds"` // 最大堆积消息数。取值范围在公测期间为 1,000,000 - 10,000,000,正式上线后范围可达到 1000,000-1000,000,000。默认取值在公测期间为 10,000,000,正式上线后为 100,000,000。 MaxMsgHeapNum *uint64 `json:"MaxMsgHeapNum,omitnil,omitempty" name:"MaxMsgHeapNum"` // 消息接收长轮询等待时间。取值范围0 - 30秒,默认值0。 - // 注意:此字段可能返回 null,表示取不到有效值。 PollingWaitSeconds *uint64 `json:"PollingWaitSeconds,omitnil,omitempty" name:"PollingWaitSeconds"` // 消息保留周期。取值范围60-1296000秒(1min-15天),默认值345600秒(4 天)。 - // 注意:此字段可能返回 null,表示取不到有效值。 MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"` // 消息可见性超时。取值范围1 - 43200秒(即12小时内),默认值30。 - // 注意:此字段可能返回 null,表示取不到有效值。 VisibilityTimeout *uint64 `json:"VisibilityTimeout,omitnil,omitempty" name:"VisibilityTimeout"` // 消息最大长度。取值范围1024 - 1048576 Byte(即1K - 1024K),默认值65536。 - // 注意:此字段可能返回 null,表示取不到有效值。 MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"` // 回溯队列的消息回溯时间最大值,取值范围0 - 43200秒,0表示不开启消息回溯。 - // 注意:此字段可能返回 null,表示取不到有效值。 RewindSeconds *uint64 `json:"RewindSeconds,omitnil,omitempty" name:"RewindSeconds"` // 队列的创建时间。返回 Unix 时间戳,精确到毫秒。 - // 注意:此字段可能返回 null,表示取不到有效值。 CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 最后一次修改队列属性的时间。返回 Unix 时间戳,精确到毫秒。 - // 注意:此字段可能返回 null,表示取不到有效值。 LastModifyTime *uint64 `json:"LastModifyTime,omitnil,omitempty" name:"LastModifyTime"` // 在队列中处于 Active 状态(不处于被消费状态)的消息总数,为近似值。 - // 注意:此字段可能返回 null,表示取不到有效值。 ActiveMsgNum *uint64 `json:"ActiveMsgNum,omitnil,omitempty" name:"ActiveMsgNum"` // 在队列中处于 Inactive 状态(正处于被消费状态)的消息总数,为近似值。 - // 注意:此字段可能返回 null,表示取不到有效值。 InactiveMsgNum *uint64 `json:"InactiveMsgNum,omitnil,omitempty" name:"InactiveMsgNum"` // 延迟消息数。 @@ -518,37 +549,29 @@ type CmqQueue struct { Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"` // 租户id - // 注意:此字段可能返回 null,表示取不到有效值。 TenantId *string `json:"TenantId,omitnil,omitempty" name:"TenantId"` // 命名空间名称 - // 注意:此字段可能返回 null,表示取不到有效值。 NamespaceName *string `json:"NamespaceName,omitnil,omitempty" name:"NamespaceName"` // 集群状态,0:创建中,1:正常,2:销毁中,3:已删除,4: 隔离中,5:创建失败,6: 删除失败 - // 注意:此字段可能返回 null,表示取不到有效值。 Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` // 最大未确认消息数量 - // 注意:此字段可能返回 null,表示取不到有效值。 MaxUnackedMsgNum *int64 `json:"MaxUnackedMsgNum,omitnil,omitempty" name:"MaxUnackedMsgNum"` // 最大消息堆积大小(字节) - // 注意:此字段可能返回 null,表示取不到有效值。 MaxMsgBacklogSize *int64 `json:"MaxMsgBacklogSize,omitnil,omitempty" name:"MaxMsgBacklogSize"` // 队列可回溯存储空间,取值范围1024MB - 10240MB,0表示不开启 - // 注意:此字段可能返回 null,表示取不到有效值。 RetentionSizeInMB *uint64 `json:"RetentionSizeInMB,omitnil,omitempty" name:"RetentionSizeInMB"` } type CmqSubscription struct { - // 订阅名字,在单个地域同一帐号的同一主题下唯一。订阅名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 订阅名字,在单个地域同一账号的同一主题下唯一。订阅名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 SubscriptionName *string `json:"SubscriptionName,omitnil,omitempty" name:"SubscriptionName"` // 订阅 ID。订阅 ID 在拉取监控数据时会用到。 - // 注意:此字段可能返回 null,表示取不到有效值。 SubscriptionId *string `json:"SubscriptionId,omitnil,omitempty" name:"SubscriptionId"` // 订阅拥有者的 APPID。 @@ -556,15 +579,12 @@ type CmqSubscription struct { TopicOwner *uint64 `json:"TopicOwner,omitnil,omitempty" name:"TopicOwner"` // 该订阅待投递的消息数。 - // 注意:此字段可能返回 null,表示取不到有效值。 MsgCount *uint64 `json:"MsgCount,omitnil,omitempty" name:"MsgCount"` // 最后一次修改订阅属性的时间。返回 Unix 时间戳,精确到毫秒。 - // 注意:此字段可能返回 null,表示取不到有效值。 LastModifyTime *uint64 `json:"LastModifyTime,omitnil,omitempty" name:"LastModifyTime"` // 订阅的创建时间。返回 Unix 时间戳,精确到毫秒。 - // 注意:此字段可能返回 null,表示取不到有效值。 CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 表示订阅接收消息的过滤策略。 @@ -572,71 +592,56 @@ type CmqSubscription struct { BindingKey []*string `json:"BindingKey,omitnil,omitempty" name:"BindingKey"` // 接收通知的 endpoint,根据协议 protocol 区分:对于 HTTP,endpoint 必须以http://开头,host 可以是域名或 IP;对于 queue,则填 queueName。 - // 注意:此字段可能返回 null,表示取不到有效值。 Endpoint *string `json:"Endpoint,omitnil,omitempty" name:"Endpoint"` // 描述用户创建订阅时选择的过滤策略: // filterType = 1表示用户使用 filterTag 标签过滤 // filterType = 2表示用户使用 bindingKey 过滤。 - // 注意:此字段可能返回 null,表示取不到有效值。 FilterTags []*string `json:"FilterTags,omitnil,omitempty" name:"FilterTags"` // 订阅的协议,目前支持两种协议:HTTP、queue。使用 HTTP 协议,用户需自己搭建接受消息的 Web Server。使用 queue,消息会自动推送到 CMQ queue,用户可以并发地拉取消息。 - // 注意:此字段可能返回 null,表示取不到有效值。 Protocol *string `json:"Protocol,omitnil,omitempty" name:"Protocol"` // 向 endpoint 推送消息出现错误时,CMQ 推送服务器的重试策略。取值有: // (1)BACKOFF_RETRY,退避重试。每隔一定时间重试一次,重试够一定次数后,就把该消息丢弃,继续推送下一条消息; // (2)EXPONENTIAL_DECAY_RETRY,指数衰退重试。每次重试的间隔是指数递增的,例如开始 1s,后面是 2s,4s,8s...由于 Topic 消息的周期是一天,所以最多重试一天就把消息丢弃。默认值是 EXPONENTIAL_DECAY_RETRY。 - // 注意:此字段可能返回 null,表示取不到有效值。 NotifyStrategy *string `json:"NotifyStrategy,omitnil,omitempty" name:"NotifyStrategy"` // 推送内容的格式。取值:(1)JSON;(2)SIMPLIFIED,即 raw 格式。如果 protocol 是 queue,则取值必须为 SIMPLIFIED。如果 protocol 是 HTTP,两个值均可以,默认值是 JSON。 - // 注意:此字段可能返回 null,表示取不到有效值。 NotifyContentFormat *string `json:"NotifyContentFormat,omitnil,omitempty" name:"NotifyContentFormat"` // 订阅所属的主题名称 - // 注意:此字段可能返回 null,表示取不到有效值。 TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` } type CmqTopic struct { // 主题的 ID。 - // 注意:此字段可能返回 null,表示取不到有效值。 TopicId *string `json:"TopicId,omitnil,omitempty" name:"TopicId"` // 主题名称。 - // 注意:此字段可能返回 null,表示取不到有效值。 TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` // 消息在主题中最长存活时间,从发送到该主题开始经过此参数指定的时间后,不论消息是否被成功推送给用户都将被删除,单位为秒。固定为一天(86400秒),该属性不能修改。 - // 注意:此字段可能返回 null,表示取不到有效值。 MsgRetentionSeconds *uint64 `json:"MsgRetentionSeconds,omitnil,omitempty" name:"MsgRetentionSeconds"` - // 消息最大长度。取值范围1024 - 1048576Byte(即1 - 1024K),默认值为65536。 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 消息最大长度。取值范围1024 - 1048576Byte(即1 - 1024K),默认值为1048576。 MaxMsgSize *uint64 `json:"MaxMsgSize,omitnil,omitempty" name:"MaxMsgSize"` // 每秒钟发布消息的条数。 - // 注意:此字段可能返回 null,表示取不到有效值。 Qps *uint64 `json:"Qps,omitnil,omitempty" name:"Qps"` // 描述用户创建订阅时选择的过滤策略: // FilterType = 1表示用户使用 FilterTag 标签过滤; // FilterType = 2表示用户使用 BindingKey 过滤。 - // 注意:此字段可能返回 null,表示取不到有效值。 FilterType *uint64 `json:"FilterType,omitnil,omitempty" name:"FilterType"` // 主题的创建时间。返回 Unix 时间戳,精确到毫秒。 - // 注意:此字段可能返回 null,表示取不到有效值。 CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 最后一次修改主题属性的时间。返回 Unix 时间戳,精确到毫秒。 - // 注意:此字段可能返回 null,表示取不到有效值。 LastModifyTime *uint64 `json:"LastModifyTime,omitnil,omitempty" name:"LastModifyTime"` // 当前该主题中消息数目(消息堆积数)。 - // 注意:此字段可能返回 null,表示取不到有效值。 MsgCount *uint64 `json:"MsgCount,omitnil,omitempty" name:"MsgCount"` // 创建者 Uin,CAM 鉴权 resource 由该字段组合而成。 @@ -652,33 +657,26 @@ type CmqTopic struct { Trace *bool `json:"Trace,omitnil,omitempty" name:"Trace"` // 租户id - // 注意:此字段可能返回 null,表示取不到有效值。 TenantId *string `json:"TenantId,omitnil,omitempty" name:"TenantId"` // 命名空间名称 - // 注意:此字段可能返回 null,表示取不到有效值。 NamespaceName *string `json:"NamespaceName,omitnil,omitempty" name:"NamespaceName"` // 集群状态,0:创建中,1:正常,2:销毁中,3:已删除,4: 隔离中,5:创建失败,6: 删除失败 - // 注意:此字段可能返回 null,表示取不到有效值。 Status *int64 `json:"Status,omitnil,omitempty" name:"Status"` // 0表示pulsar,1表示rocketmq - // 注意:此字段可能返回 null,表示取不到有效值。 BrokerType *int64 `json:"BrokerType,omitnil,omitempty" name:"BrokerType"` // 订阅数量 - // 注意:此字段可能返回 null,表示取不到有效值。 SubscriptionCount *int64 `json:"SubscriptionCount,omitnil,omitempty" name:"SubscriptionCount"` } type CmqTransactionPolicy struct { // 第一次回查时间。 - // 注意:此字段可能返回 null,表示取不到有效值。 FirstQueryInterval *uint64 `json:"FirstQueryInterval,omitnil,omitempty" name:"FirstQueryInterval"` // 最大查询次数。 - // 注意:此字段可能返回 null,表示取不到有效值。 MaxQueryCount *uint64 `json:"MaxQueryCount,omitnil,omitempty" name:"MaxQueryCount"` } @@ -711,7 +709,7 @@ type ConsumerLog struct { // 消费组。 ConsumerGroup *string `json:"ConsumerGroup,omitnil,omitempty" name:"ConsumerGroup"` - // 消费组名称。 + // 消费者名称。 ConsumerName *string `json:"ConsumerName,omitnil,omitempty" name:"ConsumerName"` // 消费时间。 @@ -1558,15 +1556,113 @@ func (r *CreateProClusterResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type CreateRabbitMQBindingRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 源exchange + Source *string `json:"Source,omitnil,omitempty" name:"Source"` + + // 目标类型,取值queue或exchange + DestinationType *string `json:"DestinationType,omitnil,omitempty" name:"DestinationType"` + + // 目标 + Destination *string `json:"Destination,omitnil,omitempty" name:"Destination"` + + // 路由键 + RoutingKey *string `json:"RoutingKey,omitnil,omitempty" name:"RoutingKey"` +} + +type CreateRabbitMQBindingRequest struct { + *tchttp.BaseRequest + + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 源exchange + Source *string `json:"Source,omitnil,omitempty" name:"Source"` + + // 目标类型,取值queue或exchange + DestinationType *string `json:"DestinationType,omitnil,omitempty" name:"DestinationType"` + + // 目标 + Destination *string `json:"Destination,omitnil,omitempty" name:"Destination"` + + // 路由键 + RoutingKey *string `json:"RoutingKey,omitnil,omitempty" name:"RoutingKey"` +} + +func (r *CreateRabbitMQBindingRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateRabbitMQBindingRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "VirtualHost") + delete(f, "Source") + delete(f, "DestinationType") + delete(f, "Destination") + delete(f, "RoutingKey") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRabbitMQBindingRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type CreateRabbitMQBindingResponseParams struct { + // 实例 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // vhost名称 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 路由关系Id + BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type CreateRabbitMQBindingResponse struct { + *tchttp.BaseResponse + Response *CreateRabbitMQBindingResponseParams `json:"Response"` +} + +func (r *CreateRabbitMQBindingResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *CreateRabbitMQBindingResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type CreateRabbitMQUserRequestParams struct { - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 用户名,登录时使用 User *string `json:"User,omitnil,omitempty" name:"User"` - // 密码,登录时使用 + // 密码,登录时使用。规范:不能为空,8-64个字符,至少要包含小写字母、大写字母、数字、特殊字符【()`~!@#$%^&*_=|{}[]:;',.?/】中的两项 Password *string `json:"Password,omitnil,omitempty" name:"Password"` // 描述 @@ -1586,13 +1682,13 @@ type CreateRabbitMQUserRequestParams struct { type CreateRabbitMQUserRequest struct { *tchttp.BaseRequest - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 用户名,登录时使用 User *string `json:"User,omitnil,omitempty" name:"User"` - // 密码,登录时使用 + // 密码,登录时使用。规范:不能为空,8-64个字符,至少要包含小写字母、大写字母、数字、特殊字符【()`~!@#$%^&*_=|{}[]:;',.?/】中的两项 Password *string `json:"Password,omitnil,omitempty" name:"Password"` // 描述 @@ -1664,16 +1760,25 @@ type CreateRabbitMQVipInstanceRequestParams struct { // 可用区 ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"` - // 私有网络VpcId + // 私有网络ID,形如 vpc-xxx。有效的 VpcId 可通过登录[私有网络](https://console.cloud.tencent.com/vpc/vpc?rid=1)控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372),从接口返回中的 unVpcId 字段获取。若在创建子机时 VpcId 与 SubnetId 同时传入 DEFAULT,则强制使用默认 vpc 网络。 VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"` - // 私有网络SubnetId + // 私有网络子网 ID,形如 subnet-xxx。有效的私有网络子网 ID 可通过登录[子网控制台](https://console.cloud.tencent.com/vpc/subnet?rid=1)查询;也可以调用接口 [DescribeSubnets](https://cloud.tencent.com/document/api/215/15784),从接口返回中的 unSubnetId 字段获取。若在创建子机时 SubnetId 与 VpcId 同时传入 DEFAULT,则强制使用默认 vpc 网络。 SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` // 集群名称 ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - // 节点规格,基础型rabbit-vip-basic-1,标准型rabbit-vip-basic-2,高阶1型rabbit-vip-basic-3,高阶2型rabbit-vip-basic-4。不传默认为基础型 + // 集群的节点规格,需要输入对应的规格标识: + // 2C8G:rabbit-vip-basic-2c8g + // 4C16G:rabbit-vip-basic-4c16g + // 8C32G:rabbit-vip-basic-8c32g + // 16C32G:rabbit-vip-basic-4 + // 16C64G:rabbit-vip-basic-16c64g + // 2C4G:rabbit-vip-basic-5 + // 4C8G:rabbit-vip-basic-1 + // 8C16G(已售罄):rabbit-vip-basic-2 + // 不传默认为 4C8G:rabbit-vip-basic-1 NodeSpec *string `json:"NodeSpec,omitnil,omitempty" name:"NodeSpec"` // 节点数量,多可用区最少为3节点。不传默认单可用区为1,多可用区为3 @@ -1682,10 +1787,10 @@ type CreateRabbitMQVipInstanceRequestParams struct { // 单节点存储规格,不传默认为200G StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"` - // 镜像队列,不传默认为false + // 是否开启默认镜像队列,true 表示为开启,false 表示为不开启。不传默认为 false EnableCreateDefaultHaMirrorQueue *bool `json:"EnableCreateDefaultHaMirrorQueue,omitnil,omitempty" name:"EnableCreateDefaultHaMirrorQueue"` - // 预付费使用。自动续费,不传默认为true + // 仅预付费集群(PayMode 参数为 1 时)使用该参数,表示是否自动续费,true 表示打开自动续费。不传默认为 true AutoRenewFlag *bool `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"` // 购买时长,不传默认为1(月) @@ -1703,11 +1808,14 @@ type CreateRabbitMQVipInstanceRequestParams struct { // 资源标签列表 ResourceTags []*Tag `json:"ResourceTags,omitnil,omitempty" name:"ResourceTags"` - // 公网带宽大小,单位 M + // 公网带宽大小,单位 Mbps Bandwidth *uint64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"` // 是否打开公网接入,不传默认为false EnablePublicAccess *bool `json:"EnablePublicAccess,omitnil,omitempty" name:"EnablePublicAccess"` + + // 是否打开集群删除保护,不传默认为 false + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` } type CreateRabbitMQVipInstanceRequest struct { @@ -1716,16 +1824,25 @@ type CreateRabbitMQVipInstanceRequest struct { // 可用区 ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"` - // 私有网络VpcId + // 私有网络ID,形如 vpc-xxx。有效的 VpcId 可通过登录[私有网络](https://console.cloud.tencent.com/vpc/vpc?rid=1)控制台查询;也可以调用接口 [DescribeVpcEx](https://cloud.tencent.com/document/api/215/1372),从接口返回中的 unVpcId 字段获取。若在创建子机时 VpcId 与 SubnetId 同时传入 DEFAULT,则强制使用默认 vpc 网络。 VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"` - // 私有网络SubnetId + // 私有网络子网 ID,形如 subnet-xxx。有效的私有网络子网 ID 可通过登录[子网控制台](https://console.cloud.tencent.com/vpc/subnet?rid=1)查询;也可以调用接口 [DescribeSubnets](https://cloud.tencent.com/document/api/215/15784),从接口返回中的 unSubnetId 字段获取。若在创建子机时 SubnetId 与 VpcId 同时传入 DEFAULT,则强制使用默认 vpc 网络。 SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` // 集群名称 ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - // 节点规格,基础型rabbit-vip-basic-1,标准型rabbit-vip-basic-2,高阶1型rabbit-vip-basic-3,高阶2型rabbit-vip-basic-4。不传默认为基础型 + // 集群的节点规格,需要输入对应的规格标识: + // 2C8G:rabbit-vip-basic-2c8g + // 4C16G:rabbit-vip-basic-4c16g + // 8C32G:rabbit-vip-basic-8c32g + // 16C32G:rabbit-vip-basic-4 + // 16C64G:rabbit-vip-basic-16c64g + // 2C4G:rabbit-vip-basic-5 + // 4C8G:rabbit-vip-basic-1 + // 8C16G(已售罄):rabbit-vip-basic-2 + // 不传默认为 4C8G:rabbit-vip-basic-1 NodeSpec *string `json:"NodeSpec,omitnil,omitempty" name:"NodeSpec"` // 节点数量,多可用区最少为3节点。不传默认单可用区为1,多可用区为3 @@ -1734,10 +1851,10 @@ type CreateRabbitMQVipInstanceRequest struct { // 单节点存储规格,不传默认为200G StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"` - // 镜像队列,不传默认为false + // 是否开启默认镜像队列,true 表示为开启,false 表示为不开启。不传默认为 false EnableCreateDefaultHaMirrorQueue *bool `json:"EnableCreateDefaultHaMirrorQueue,omitnil,omitempty" name:"EnableCreateDefaultHaMirrorQueue"` - // 预付费使用。自动续费,不传默认为true + // 仅预付费集群(PayMode 参数为 1 时)使用该参数,表示是否自动续费,true 表示打开自动续费。不传默认为 true AutoRenewFlag *bool `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"` // 购买时长,不传默认为1(月) @@ -1755,11 +1872,14 @@ type CreateRabbitMQVipInstanceRequest struct { // 资源标签列表 ResourceTags []*Tag `json:"ResourceTags,omitnil,omitempty" name:"ResourceTags"` - // 公网带宽大小,单位 M + // 公网带宽大小,单位 Mbps Bandwidth *uint64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"` // 是否打开公网接入,不传默认为false EnablePublicAccess *bool `json:"EnablePublicAccess,omitnil,omitempty" name:"EnablePublicAccess"` + + // 是否打开集群删除保护,不传默认为 false + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` } func (r *CreateRabbitMQVipInstanceRequest) ToJsonString() string { @@ -1790,6 +1910,7 @@ func (r *CreateRabbitMQVipInstanceRequest) FromJsonString(s string) error { delete(f, "ResourceTags") delete(f, "Bandwidth") delete(f, "EnablePublicAccess") + delete(f, "EnableDeletionProtection") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRabbitMQVipInstanceRequest has unknown keys!", "") } @@ -1798,12 +1919,10 @@ func (r *CreateRabbitMQVipInstanceRequest) FromJsonString(s string) error { // Predefined struct for user type CreateRabbitMQVipInstanceResponseParams struct { - // 订单号Id - // 注意:此字段可能返回 null,表示取不到有效值。 + // 订单号 ID TranId *string `json:"TranId,omitnil,omitempty" name:"TranId"` - // 实例Id - // 注意:此字段可能返回 null,表示取不到有效值。 + // 实例 ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -1828,7 +1947,7 @@ func (r *CreateRabbitMQVipInstanceResponse) FromJsonString(s string) error { // Predefined struct for user type CreateRabbitMQVirtualHostRequestParams struct { - // 集群实例Id + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // vhost名 @@ -1847,7 +1966,7 @@ type CreateRabbitMQVirtualHostRequestParams struct { type CreateRabbitMQVirtualHostRequest struct { *tchttp.BaseRequest - // 集群实例Id + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // vhost名 @@ -1918,6 +2037,9 @@ type CreateRocketMQClusterRequestParams struct { // 集群描述,128个字符以内 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 标签列表 + TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"` } type CreateRocketMQClusterRequest struct { @@ -1928,6 +2050,9 @@ type CreateRocketMQClusterRequest struct { // 集群描述,128个字符以内 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 标签列表 + TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"` } func (r *CreateRocketMQClusterRequest) ToJsonString() string { @@ -1944,6 +2069,7 @@ func (r *CreateRocketMQClusterRequest) FromJsonString(s string) error { } delete(f, "Name") delete(f, "Remark") + delete(f, "TagList") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQClusterRequest has unknown keys!", "") } @@ -1977,7 +2103,7 @@ func (r *CreateRocketMQClusterResponse) FromJsonString(s string) error { // Predefined struct for user type CreateRocketMQEnvironmentRoleRequestParams struct { - // 环境(命名空间)名称。 + // 命名空间 EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` // 角色名称。 @@ -1988,12 +2114,15 @@ type CreateRocketMQEnvironmentRoleRequestParams struct { // 必填字段,集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // Topic&Group维度权限配置 + DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"` } type CreateRocketMQEnvironmentRoleRequest struct { *tchttp.BaseRequest - // 环境(命名空间)名称。 + // 命名空间 EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` // 角色名称。 @@ -2004,6 +2133,9 @@ type CreateRocketMQEnvironmentRoleRequest struct { // 必填字段,集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // Topic&Group维度权限配置 + DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"` } func (r *CreateRocketMQEnvironmentRoleRequest) ToJsonString() string { @@ -2022,6 +2154,7 @@ func (r *CreateRocketMQEnvironmentRoleRequest) FromJsonString(s string) error { delete(f, "RoleName") delete(f, "Permissions") delete(f, "ClusterId") + delete(f, "DetailedPerms") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQEnvironmentRoleRequest has unknown keys!", "") } @@ -2245,6 +2378,9 @@ type CreateRocketMQRoleRequestParams struct { // 备注说明,长度必须大等于0且小等于128。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 角色授权类型(集群:Cluster; 主题或消费组:TopicAndGroup) + PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"` } type CreateRocketMQRoleRequest struct { @@ -2258,6 +2394,9 @@ type CreateRocketMQRoleRequest struct { // 备注说明,长度必须大等于0且小等于128。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 角色授权类型(集群:Cluster; 主题或消费组:TopicAndGroup) + PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"` } func (r *CreateRocketMQRoleRequest) ToJsonString() string { @@ -2275,6 +2414,7 @@ func (r *CreateRocketMQRoleRequest) FromJsonString(s string) error { delete(f, "RoleName") delete(f, "ClusterId") delete(f, "Remark") + delete(f, "PermType") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRocketMQRoleRequest has unknown keys!", "") } @@ -2758,6 +2898,15 @@ type CreateTopicRequestParams struct { // 未消费消息过期时间,单位:秒,取值范围:60秒~15天。 MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"` + + // 不传默认是原生策略,DefaultPolicy表示当订阅下达到最大未确认消息数 5000 时,服务端将不再向当前订阅下的所有消费者推送消息,DynamicPolicy表示动态调整订阅下的最大未确认消息数,具体配额是在 5000 和消费者数量*20之间取最大值。每个消费者默认最大 unack 消息数为 20,超过该限制时仅影响该消费者,不影响其他消费者。 + UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"` + + // 是否开启异常消费者隔离 + IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"` + + // 消费者 Ack 超时时间,单位:秒,范围60-(3600*24) + AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"` } type CreateTopicRequest struct { @@ -2795,6 +2944,15 @@ type CreateTopicRequest struct { // 未消费消息过期时间,单位:秒,取值范围:60秒~15天。 MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"` + + // 不传默认是原生策略,DefaultPolicy表示当订阅下达到最大未确认消息数 5000 时,服务端将不再向当前订阅下的所有消费者推送消息,DynamicPolicy表示动态调整订阅下的最大未确认消息数,具体配额是在 5000 和消费者数量*20之间取最大值。每个消费者默认最大 unack 消息数为 20,超过该限制时仅影响该消费者,不影响其他消费者。 + UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"` + + // 是否开启异常消费者隔离 + IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"` + + // 消费者 Ack 超时时间,单位:秒,范围60-(3600*24) + AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"` } func (r *CreateTopicRequest) ToJsonString() string { @@ -2817,6 +2975,9 @@ func (r *CreateTopicRequest) FromJsonString(s string) error { delete(f, "TopicType") delete(f, "PulsarTopicType") delete(f, "MsgTTL") + delete(f, "UnackPolicy") + delete(f, "IsolateConsumerEnable") + delete(f, "AckTimeOut") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateTopicRequest has unknown keys!", "") } @@ -2835,7 +2996,6 @@ type CreateTopicResponseParams struct { Partitions *uint64 `json:"Partitions,omitnil,omitempty" name:"Partitions"` // 备注,128字符以内。 - // 注意:此字段可能返回 null,表示取不到有效值。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` // 0: 普通消息; @@ -2843,7 +3003,6 @@ type CreateTopicResponseParams struct { // 2 :局部顺序消息; // 3 :重试队列; // 4 :死信队列; - // 注意:此字段可能返回 null,表示取不到有效值。 TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -3282,181 +3441,324 @@ func (r *DeleteProClusterResponse) FromJsonString(s string) error { } // Predefined struct for user -type DeleteRabbitMQUserRequestParams struct { - // 集群实例Id +type DeleteRabbitMQBindingRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 用户名,登录时使用 - User *string `json:"User,omitnil,omitempty" name:"User"` + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 路由关系Id + BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"` } -type DeleteRabbitMQUserRequest struct { +type DeleteRabbitMQBindingRequest struct { *tchttp.BaseRequest - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 用户名,登录时使用 - User *string `json:"User,omitnil,omitempty" name:"User"` + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 路由关系Id + BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"` } -func (r *DeleteRabbitMQUserRequest) ToJsonString() string { +func (r *DeleteRabbitMQBindingRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DeleteRabbitMQUserRequest) FromJsonString(s string) error { +func (r *DeleteRabbitMQBindingRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "InstanceId") - delete(f, "User") + delete(f, "VirtualHost") + delete(f, "BindingId") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQUserRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQBindingRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DeleteRabbitMQUserResponseParams struct { +type DeleteRabbitMQBindingResponseParams struct { + // 实例 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // vhost参数 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 路由关系Id + BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DeleteRabbitMQUserResponse struct { +type DeleteRabbitMQBindingResponse struct { *tchttp.BaseResponse - Response *DeleteRabbitMQUserResponseParams `json:"Response"` + Response *DeleteRabbitMQBindingResponseParams `json:"Response"` } -func (r *DeleteRabbitMQUserResponse) ToJsonString() string { +func (r *DeleteRabbitMQBindingResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DeleteRabbitMQUserResponse) FromJsonString(s string) error { +func (r *DeleteRabbitMQBindingResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DeleteRabbitMQVipInstanceRequestParams struct { - // 实例Id +type DeleteRabbitMQPermissionRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 是否国际站请求,默认 false - IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"` + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到 Vhost 名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` } -type DeleteRabbitMQVipInstanceRequest struct { +type DeleteRabbitMQPermissionRequest struct { *tchttp.BaseRequest - // 实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 是否国际站请求,默认 false - IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"` + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到 Vhost 名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` } -func (r *DeleteRabbitMQVipInstanceRequest) ToJsonString() string { +func (r *DeleteRabbitMQPermissionRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DeleteRabbitMQVipInstanceRequest) FromJsonString(s string) error { +func (r *DeleteRabbitMQPermissionRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "InstanceId") - delete(f, "IsIntl") + delete(f, "User") + delete(f, "VirtualHost") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQVipInstanceRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQPermissionRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DeleteRabbitMQVipInstanceResponseParams struct { - // 订单号Id - // 注意:此字段可能返回 null,表示取不到有效值。 - TranId *string `json:"TranId,omitnil,omitempty" name:"TranId"` - - // 实例Id - // 注意:此字段可能返回 null,表示取不到有效值。 - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - +type DeleteRabbitMQPermissionResponseParams struct { // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DeleteRabbitMQVipInstanceResponse struct { +type DeleteRabbitMQPermissionResponse struct { *tchttp.BaseResponse - Response *DeleteRabbitMQVipInstanceResponseParams `json:"Response"` + Response *DeleteRabbitMQPermissionResponseParams `json:"Response"` } -func (r *DeleteRabbitMQVipInstanceResponse) ToJsonString() string { +func (r *DeleteRabbitMQPermissionResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DeleteRabbitMQVipInstanceResponse) FromJsonString(s string) error { +func (r *DeleteRabbitMQPermissionResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DeleteRabbitMQVirtualHostRequestParams struct { - // 集群实例Id +type DeleteRabbitMQUserRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // vhost名 - VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` } -type DeleteRabbitMQVirtualHostRequest struct { +type DeleteRabbitMQUserRequest struct { *tchttp.BaseRequest - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // vhost名 - VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` } -func (r *DeleteRabbitMQVirtualHostRequest) ToJsonString() string { +func (r *DeleteRabbitMQUserRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DeleteRabbitMQVirtualHostRequest) FromJsonString(s string) error { +func (r *DeleteRabbitMQUserRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "InstanceId") - delete(f, "VirtualHost") + delete(f, "User") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQVirtualHostRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQUserRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DeleteRabbitMQVirtualHostResponseParams struct { +type DeleteRabbitMQUserResponseParams struct { // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DeleteRabbitMQVirtualHostResponse struct { +type DeleteRabbitMQUserResponse struct { + *tchttp.BaseResponse + Response *DeleteRabbitMQUserResponseParams `json:"Response"` +} + +func (r *DeleteRabbitMQUserResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteRabbitMQUserResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DeleteRabbitMQVipInstanceRequestParams struct { + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 是否国际站请求,默认 false + IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"` +} + +type DeleteRabbitMQVipInstanceRequest struct { + *tchttp.BaseRequest + + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 是否国际站请求,默认 false + IsIntl *bool `json:"IsIntl,omitnil,omitempty" name:"IsIntl"` +} + +func (r *DeleteRabbitMQVipInstanceRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteRabbitMQVipInstanceRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "IsIntl") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQVipInstanceRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DeleteRabbitMQVipInstanceResponseParams struct { + // 订单号 ID + TranId *string `json:"TranId,omitnil,omitempty" name:"TranId"` + + // 实例 ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DeleteRabbitMQVipInstanceResponse struct { + *tchttp.BaseResponse + Response *DeleteRabbitMQVipInstanceResponseParams `json:"Response"` +} + +func (r *DeleteRabbitMQVipInstanceResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteRabbitMQVipInstanceResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DeleteRabbitMQVirtualHostRequestParams struct { + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` +} + +type DeleteRabbitMQVirtualHostRequest struct { + *tchttp.BaseRequest + + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` +} + +func (r *DeleteRabbitMQVirtualHostRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DeleteRabbitMQVirtualHostRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "VirtualHost") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRabbitMQVirtualHostRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DeleteRabbitMQVirtualHostResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DeleteRabbitMQVirtualHostResponse struct { *tchttp.BaseResponse Response *DeleteRabbitMQVirtualHostResponseParams `json:"Response"` } @@ -3534,7 +3836,7 @@ type DeleteRocketMQEnvironmentRolesRequestParams struct { // 角色名称数组。 RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"` - // 必填字段,集群的ID + // 集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` } @@ -3547,7 +3849,7 @@ type DeleteRocketMQEnvironmentRolesRequest struct { // 角色名称数组。 RoleNames []*string `json:"RoleNames,omitnil,omitempty" name:"RoleNames"` - // 必填字段,集群的ID + // 集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` } @@ -4617,87 +4919,6 @@ func (r *DescribeClustersResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -// Predefined struct for user -type DescribeCmqDeadLetterSourceQueuesRequestParams struct { - // 死信队列名称 - DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"` - - // 分页时本页获取主题列表的起始位置。如果填写了该值,必须也要填写 limit 。该值缺省时,后台取默认值 0。 - Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - - // 分页时本页获取主题的个数,如果不传递该参数,则该参数默认为20,最大值为50。 - Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - - // 根据SourceQueueName过滤 - SourceQueueName *string `json:"SourceQueueName,omitnil,omitempty" name:"SourceQueueName"` -} - -type DescribeCmqDeadLetterSourceQueuesRequest struct { - *tchttp.BaseRequest - - // 死信队列名称 - DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"` - - // 分页时本页获取主题列表的起始位置。如果填写了该值,必须也要填写 limit 。该值缺省时,后台取默认值 0。 - Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - - // 分页时本页获取主题的个数,如果不传递该参数,则该参数默认为20,最大值为50。 - Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - - // 根据SourceQueueName过滤 - SourceQueueName *string `json:"SourceQueueName,omitnil,omitempty" name:"SourceQueueName"` -} - -func (r *DescribeCmqDeadLetterSourceQueuesRequest) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *DescribeCmqDeadLetterSourceQueuesRequest) FromJsonString(s string) error { - f := make(map[string]interface{}) - if err := json.Unmarshal([]byte(s), &f); err != nil { - return err - } - delete(f, "DeadLetterQueueName") - delete(f, "Limit") - delete(f, "Offset") - delete(f, "SourceQueueName") - if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCmqDeadLetterSourceQueuesRequest has unknown keys!", "") - } - return json.Unmarshal([]byte(s), &r) -} - -// Predefined struct for user -type DescribeCmqDeadLetterSourceQueuesResponseParams struct { - // 满足本次条件的队列个数 - TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` - - // 死信队列源队列 - QueueSet []*CmqDeadLetterSource `json:"QueueSet,omitnil,omitempty" name:"QueueSet"` - - // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` -} - -type DescribeCmqDeadLetterSourceQueuesResponse struct { - *tchttp.BaseResponse - Response *DescribeCmqDeadLetterSourceQueuesResponseParams `json:"Response"` -} - -func (r *DescribeCmqDeadLetterSourceQueuesResponse) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *DescribeCmqDeadLetterSourceQueuesResponse) FromJsonString(s string) error { - return json.Unmarshal([]byte(s), &r) -} - // Predefined struct for user type DescribeCmqQueueDetailRequestParams struct { // 精确匹配QueueName @@ -4828,7 +5049,6 @@ type DescribeCmqQueuesResponseParams struct { TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 队列列表 - // 注意:此字段可能返回 null,表示取不到有效值。 QueueList []*CmqQueue `json:"QueueList,omitnil,omitempty" name:"QueueList"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -4926,7 +5146,6 @@ type DescribeCmqSubscriptionDetailResponseParams struct { TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // Subscription属性集合 - // 注意:此字段可能返回 null,表示取不到有效值。 SubscriptionSet []*CmqSubscription `json:"SubscriptionSet,omitnil,omitempty" name:"SubscriptionSet"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -5076,7 +5295,6 @@ func (r *DescribeCmqTopicsRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeCmqTopicsResponseParams struct { // 主题列表 - // 注意:此字段可能返回 null,表示取不到有效值。 TopicList []*CmqTopic `json:"TopicList,omitnil,omitempty" name:"TopicList"` // 全量主题数量 @@ -5189,7 +5407,10 @@ func (r *DescribeEnvironmentAttributesResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeEnvironmentRolesRequestParams struct { - // 必填字段,环境(命名空间)名称。 + // Pulsar 集群的ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 环境(命名空间)名称。 EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` // 起始下标,不填默认为0。 @@ -5198,9 +5419,6 @@ type DescribeEnvironmentRolesRequestParams struct { // 返回数量,不填则默认为10,最大值为20。 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 必填字段,Pulsar 集群的ID - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` - // 角色名称 RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` @@ -5214,7 +5432,10 @@ type DescribeEnvironmentRolesRequestParams struct { type DescribeEnvironmentRolesRequest struct { *tchttp.BaseRequest - // 必填字段,环境(命名空间)名称。 + // Pulsar 集群的ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 环境(命名空间)名称。 EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` // 起始下标,不填默认为0。 @@ -5223,9 +5444,6 @@ type DescribeEnvironmentRolesRequest struct { // 返回数量,不填则默认为10,最大值为20。 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 必填字段,Pulsar 集群的ID - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` - // 角色名称 RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` @@ -5248,10 +5466,10 @@ func (r *DescribeEnvironmentRolesRequest) FromJsonString(s string) error { if err := json.Unmarshal([]byte(s), &f); err != nil { return err } + delete(f, "ClusterId") delete(f, "EnvironmentId") delete(f, "Offset") delete(f, "Limit") - delete(f, "ClusterId") delete(f, "RoleName") delete(f, "Filters") if len(f) > 0 { @@ -5407,6 +5625,9 @@ type DescribeMqMsgTraceRequestParams struct { // 查询死信时该值为true,只对Rocketmq有效 QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"` + + // 生产时间 + ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"` } type DescribeMqMsgTraceRequest struct { @@ -5435,6 +5656,9 @@ type DescribeMqMsgTraceRequest struct { // 查询死信时该值为true,只对Rocketmq有效 QueryDlqMsg *bool `json:"QueryDlqMsg,omitnil,omitempty" name:"QueryDlqMsg"` + + // 生产时间 + ProduceTime *string `json:"ProduceTime,omitnil,omitempty" name:"ProduceTime"` } func (r *DescribeMqMsgTraceRequest) ToJsonString() string { @@ -5457,6 +5681,7 @@ func (r *DescribeMqMsgTraceRequest) FromJsonString(s string) error { delete(f, "QueueName") delete(f, "GroupName") delete(f, "QueryDlqMsg") + delete(f, "ProduceTime") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMqMsgTraceRequest has unknown keys!", "") } @@ -5465,48 +5690,7 @@ func (r *DescribeMqMsgTraceRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeMqMsgTraceResponseParams struct { - // [ - // { - // "Stage": "produce", - // "Data": { - // "ProducerName": "生产者名", - // "ProduceTime": "消息生产时间", - // "ProducerAddr": "客户端地址", - // "Duration": "耗时ms", - // "Status": "状态(0:成功,1:失败)" - // } - // }, - // { - // "Stage": "persist", - // "Data": { - // "PersistTime": "存储时间", - // "Duration": "耗时ms", - // "Status": "状态(0:成功,1:失败)" - // } - // }, - // { - // "Stage": "consume", - // "Data": { - // "TotalCount": 2, - // "RocketMqConsumeLogs": [ - // { - // "ConsumerGroup": "消费组", - // "ConsumeModel": "消费模式", - // "ConsumerAddr": "消费者地址", - // "ConsumeTime": "推送时间", - // "Status": "状态(0:已推送未确认, 2:已确认, 3:转入重试, 4:已重试未确认, 5:已转入死信队列)" - // }, - // { - // "ConsumerGroup": "消费组", - // "ConsumeModel": "消费模式", - // "ConsumerAddr": "消费者地址", - // "ConsumeTime": "推送时间", - // "Status": "状态(0:已推送未确认, 2:已确认, 3:转入重试, 4:已重试未确认, 5:已转入死信队列)" - // } - // ] - // } - // } - // ] + // 消息内容 Result []*TraceResult `json:"Result,omitnil,omitempty" name:"Result"` // 消息轨迹页展示的topic名称 @@ -5758,6 +5942,9 @@ type DescribeNamespaceBundlesOptRequestParams struct { // bundle 所属的 broker IP 地址,支持模糊查询 OwnerBroker *string `json:"OwnerBroker,omitnil,omitempty" name:"OwnerBroker"` + + // 租户(如果没有自定义租户名称,和 tenantId 相同;如果有配置自定义租户名称,则为自定义租户名 user_tenant) + Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"` } type DescribeNamespaceBundlesOptRequest struct { @@ -5786,6 +5973,9 @@ type DescribeNamespaceBundlesOptRequest struct { // bundle 所属的 broker IP 地址,支持模糊查询 OwnerBroker *string `json:"OwnerBroker,omitnil,omitempty" name:"OwnerBroker"` + + // 租户(如果没有自定义租户名称,和 tenantId 相同;如果有配置自定义租户名称,则为自定义租户名 user_tenant) + Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"` } func (r *DescribeNamespaceBundlesOptRequest) ToJsonString() string { @@ -5808,6 +5998,7 @@ func (r *DescribeNamespaceBundlesOptRequest) FromJsonString(s string) error { delete(f, "Offset") delete(f, "Bundle") delete(f, "OwnerBroker") + delete(f, "Tenant") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeNamespaceBundlesOptRequest has unknown keys!", "") } @@ -6226,86 +6417,68 @@ func (r *DescribePulsarProInstancesResponse) FromJsonString(s string) error { } // Predefined struct for user -type DescribeRabbitMQExchangesRequestParams struct { - // 实例 id +type DescribeRabbitMQBindingsRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // vhost 参数 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // 分页 offset + // 分页 offset,默认 0 Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 分页 limit + // 分页 limit,默认 20 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 搜索关键词, 支持模糊匹配 + // 搜索关键词,根据源exchange名称/目标资源名称/绑定key进行模糊搜索 SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"` - // 筛选 exchange 类型, 数组中每个元素为选中的过滤类型 - ExchangeTypeFilters []*string `json:"ExchangeTypeFilters,omitnil,omitempty" name:"ExchangeTypeFilters"` - - // 筛选 exchange 创建来源, "system":"系统创建", "user":"用户创建" - ExchangeCreatorFilters []*string `json:"ExchangeCreatorFilters,omitnil,omitempty" name:"ExchangeCreatorFilters"` - - // exchange 名称,用于精确匹配 - ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"` + // 根据源Exchange精准搜索过滤 + SourceExchange *string `json:"SourceExchange,omitnil,omitempty" name:"SourceExchange"` - // 排序依据的字段: - // MessageRateInOut - 生产消费速率之和; - // MessageRateIn - 生产速率; - // MessageRateOut - 消费速率; - SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` + // 根据目标队列名精准搜索过滤,和 DestinationExchange 过滤不可同时设置 + QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"` - // 排序顺序,ascend 或 descend - SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"` + // 根据目标Exchange精准搜索过滤,和QueueName过滤不可同时设置 + DestinationExchange *string `json:"DestinationExchange,omitnil,omitempty" name:"DestinationExchange"` } -type DescribeRabbitMQExchangesRequest struct { +type DescribeRabbitMQBindingsRequest struct { *tchttp.BaseRequest - // 实例 id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // vhost 参数 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // 分页 offset + // 分页 offset,默认 0 Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 分页 limit + // 分页 limit,默认 20 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 搜索关键词, 支持模糊匹配 + // 搜索关键词,根据源exchange名称/目标资源名称/绑定key进行模糊搜索 SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"` - // 筛选 exchange 类型, 数组中每个元素为选中的过滤类型 - ExchangeTypeFilters []*string `json:"ExchangeTypeFilters,omitnil,omitempty" name:"ExchangeTypeFilters"` - - // 筛选 exchange 创建来源, "system":"系统创建", "user":"用户创建" - ExchangeCreatorFilters []*string `json:"ExchangeCreatorFilters,omitnil,omitempty" name:"ExchangeCreatorFilters"` - - // exchange 名称,用于精确匹配 - ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"` + // 根据源Exchange精准搜索过滤 + SourceExchange *string `json:"SourceExchange,omitnil,omitempty" name:"SourceExchange"` - // 排序依据的字段: - // MessageRateInOut - 生产消费速率之和; - // MessageRateIn - 生产速率; - // MessageRateOut - 消费速率; - SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` + // 根据目标队列名精准搜索过滤,和 DestinationExchange 过滤不可同时设置 + QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"` - // 排序顺序,ascend 或 descend - SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"` + // 根据目标Exchange精准搜索过滤,和QueueName过滤不可同时设置 + DestinationExchange *string `json:"DestinationExchange,omitnil,omitempty" name:"DestinationExchange"` } -func (r *DescribeRabbitMQExchangesRequest) ToJsonString() string { +func (r *DescribeRabbitMQBindingsRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeRabbitMQExchangesRequest) FromJsonString(s string) error { +func (r *DescribeRabbitMQBindingsRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err @@ -6315,11 +6488,142 @@ func (r *DescribeRabbitMQExchangesRequest) FromJsonString(s string) error { delete(f, "Offset") delete(f, "Limit") delete(f, "SearchWord") - delete(f, "ExchangeTypeFilters") - delete(f, "ExchangeCreatorFilters") - delete(f, "ExchangeName") - delete(f, "SortElement") - delete(f, "SortOrder") + delete(f, "SourceExchange") + delete(f, "QueueName") + delete(f, "DestinationExchange") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQBindingsRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRabbitMQBindingsResponseParams struct { + // 路由关系列表 + BindingInfoList []*RabbitMQBindingListInfo `json:"BindingInfoList,omitnil,omitempty" name:"BindingInfoList"` + + // 路由关系数量 + TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeRabbitMQBindingsResponse struct { + *tchttp.BaseResponse + Response *DescribeRabbitMQBindingsResponseParams `json:"Response"` +} + +func (r *DescribeRabbitMQBindingsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRabbitMQBindingsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRabbitMQExchangesRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 分页 offset,默认 0 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 分页 limit,默认 20 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 搜索关键词, 支持模糊匹配 + SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"` + + // 筛选 exchange 类型, 数组中每个元素为选中的过滤类型,仅支持 direct、fanout、topic、header + ExchangeTypeFilters []*string `json:"ExchangeTypeFilters,omitnil,omitempty" name:"ExchangeTypeFilters"` + + // 筛选 exchange 创建来源, "system":"系统创建", "user":"用户创建" + ExchangeCreatorFilters []*string `json:"ExchangeCreatorFilters,omitnil,omitempty" name:"ExchangeCreatorFilters"` + + // exchange 名称,用于精确匹配 + ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"` + + // 排序依据的字段: + // MessageRateInOut - 生产消费速率之和; + // MessageRateIn - 生产速率; + // MessageRateOut - 消费速率; + SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` + + // 排序顺序,ascend 或 descend + // ascend:升序 + // descend:降序 + SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"` +} + +type DescribeRabbitMQExchangesRequest struct { + *tchttp.BaseRequest + + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 分页 offset,默认 0 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 分页 limit,默认 20 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 搜索关键词, 支持模糊匹配 + SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"` + + // 筛选 exchange 类型, 数组中每个元素为选中的过滤类型,仅支持 direct、fanout、topic、header + ExchangeTypeFilters []*string `json:"ExchangeTypeFilters,omitnil,omitempty" name:"ExchangeTypeFilters"` + + // 筛选 exchange 创建来源, "system":"系统创建", "user":"用户创建" + ExchangeCreatorFilters []*string `json:"ExchangeCreatorFilters,omitnil,omitempty" name:"ExchangeCreatorFilters"` + + // exchange 名称,用于精确匹配 + ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"` + + // 排序依据的字段: + // MessageRateInOut - 生产消费速率之和; + // MessageRateIn - 生产速率; + // MessageRateOut - 消费速率; + SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` + + // 排序顺序,ascend 或 descend + // ascend:升序 + // descend:降序 + SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"` +} + +func (r *DescribeRabbitMQExchangesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRabbitMQExchangesRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "VirtualHost") + delete(f, "Offset") + delete(f, "Limit") + delete(f, "SearchWord") + delete(f, "ExchangeTypeFilters") + delete(f, "ExchangeCreatorFilters") + delete(f, "ExchangeName") + delete(f, "SortElement") + delete(f, "SortOrder") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQExchangesRequest has unknown keys!", "") } @@ -6329,11 +6633,9 @@ func (r *DescribeRabbitMQExchangesRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQExchangesResponseParams struct { // 策略列表信息 - // 注意:此字段可能返回 null,表示取不到有效值。 ExchangeInfoList []*RabbitMQExchangeListInfo `json:"ExchangeInfoList,omitnil,omitempty" name:"ExchangeInfoList"` // 策略结果总数 - // 注意:此字段可能返回 null,表示取不到有效值。 TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -6358,26 +6660,26 @@ func (r *DescribeRabbitMQExchangesResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQNodeListRequestParams struct { - // rabbitmq集群ID + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 偏移量 + // 偏移量,默认值 0 Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 一页限制 + // 一页限制,默认值 20 Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 模糊搜索节点名字 NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"` - // 过滤参数的名字和数值 - // 现在只有一个nodeStatus - // running/down - // 数组类型,兼容后续添加过滤参数 + // 过滤参数的名字和数值,当前仅支持根据节点状态筛选。 + // "Name": "nodeStatus" + // "Value": running or down Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 按指定元素排序,现在只有2个 - // cpuUsage/diskUsage + // cpuUsage:节点CPU利用率 + // diskUsage:节点磁盘利用率 SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` // 升序/降序 @@ -6388,26 +6690,26 @@ type DescribeRabbitMQNodeListRequestParams struct { type DescribeRabbitMQNodeListRequest struct { *tchttp.BaseRequest - // rabbitmq集群ID + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 偏移量 + // 偏移量,默认值 0 Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 一页限制 + // 一页限制,默认值 20 Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 模糊搜索节点名字 NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"` - // 过滤参数的名字和数值 - // 现在只有一个nodeStatus - // running/down - // 数组类型,兼容后续添加过滤参数 + // 过滤参数的名字和数值,当前仅支持根据节点状态筛选。 + // "Name": "nodeStatus" + // "Value": running or down Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 按指定元素排序,现在只有2个 - // cpuUsage/diskUsage + // cpuUsage:节点CPU利用率 + // diskUsage:节点磁盘利用率 SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` // 升序/降序 @@ -6442,10 +6744,10 @@ func (r *DescribeRabbitMQNodeListRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQNodeListResponseParams struct { - // 集群列表数量 + // 集群节点数量 TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` - // 集群列表 + // 集群节点列表 // 注意:此字段可能返回 null,表示取不到有效值。 NodeList []*RabbitMQPrivateNode `json:"NodeList,omitnil,omitempty" name:"NodeList"` @@ -6469,12 +6771,100 @@ func (r *DescribeRabbitMQNodeListResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DescribeRabbitMQPermissionRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到 Vhost 名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 分页 Offset,默认 0 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 分页 Limit,默认 20 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +type DescribeRabbitMQPermissionRequest struct { + *tchttp.BaseRequest + + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到 Vhost 名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 分页 Offset,默认 0 + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 分页 Limit,默认 20 + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +func (r *DescribeRabbitMQPermissionRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRabbitMQPermissionRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "User") + delete(f, "VirtualHost") + delete(f, "Offset") + delete(f, "Limit") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQPermissionRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRabbitMQPermissionResponseParams struct { + // 返回权限数量 + TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 权限详情列表 + RabbitMQPermissionList []*RabbitMQPermission `json:"RabbitMQPermissionList,omitnil,omitempty" name:"RabbitMQPermissionList"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeRabbitMQPermissionResponse struct { + *tchttp.BaseResponse + Response *DescribeRabbitMQPermissionResponseParams `json:"Response"` +} + +func (r *DescribeRabbitMQPermissionResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRabbitMQPermissionResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DescribeRabbitMQQueueDetailRequestParams struct { - // 实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // Vhost参数 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到 Vhost 名称 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` // 队列名称 @@ -6484,10 +6874,10 @@ type DescribeRabbitMQQueueDetailRequestParams struct { type DescribeRabbitMQQueueDetailRequest struct { *tchttp.BaseRequest - // 实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // Vhost参数 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到 Vhost 名称 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` // 队列名称 @@ -6517,20 +6907,16 @@ func (r *DescribeRabbitMQQueueDetailRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQQueueDetailResponseParams struct { - // 队列名称 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 实例名称 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // Vhost参数 - // 注意:此字段可能返回 null,表示取不到有效值。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` // 队列名称 - // 注意:此字段可能返回 null,表示取不到有效值。 QueueName *string `json:"QueueName,omitnil,omitempty" name:"QueueName"` // 队列类型,取值classic或quorum - // 注意:此字段可能返回 null,表示取不到有效值。 QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"` // 在线消费者数量 @@ -6538,7 +6924,6 @@ type DescribeRabbitMQQueueDetailResponseParams struct { Consumers *int64 `json:"Consumers,omitnil,omitempty" name:"Consumers"` // 持久标记 - // 注意:此字段可能返回 null,表示取不到有效值。 Durable *bool `json:"Durable,omitnil,omitempty" name:"Durable"` // 自动清除 @@ -6606,7 +6991,6 @@ type DescribeRabbitMQQueueDetailResponseParams struct { MaxInMemoryBytes *int64 `json:"MaxInMemoryBytes,omitnil,omitempty" name:"MaxInMemoryBytes"` // 创建时间戳,单位秒 - // 注意:此字段可能返回 null,表示取不到有效值。 CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 节点 @@ -6626,7 +7010,6 @@ type DescribeRabbitMQQueueDetailResponseParams struct { QuorumInitialGroupSize *int64 `json:"QuorumInitialGroupSize,omitnil,omitempty" name:"QuorumInitialGroupSize"` // 是否为独占队列 - // 注意:此字段可能返回 null,表示取不到有效值。 Exclusive *bool `json:"Exclusive,omitnil,omitempty" name:"Exclusive"` // 生效的策略名 @@ -6634,9 +7017,14 @@ type DescribeRabbitMQQueueDetailResponseParams struct { Policy *string `json:"Policy,omitnil,omitempty" name:"Policy"` // 扩展参数 key-value - // 注意:此字段可能返回 null,表示取不到有效值。 Arguments *string `json:"Arguments,omitnil,omitempty" name:"Arguments"` + // 创建时间时间戳 + CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"` + + // 修改时间时间戳 + ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } @@ -6659,22 +7047,22 @@ func (r *DescribeRabbitMQQueueDetailResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQQueuesRequestParams struct { - // 实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // Vhost参数 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // 分页Offset + // 分页 Offset,默认 0 Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 分页Limit + // 分页 Limit,默认 20 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 搜索关键词 SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"` - // 队列类型筛选,不填或 "all":classic 和 quorum 队列;"classic":筛选 classic 队列;"quorum":筛选 quorum 队列 + // 队列类型筛选,不填或 "all":筛选普通队列 和 quorum 队列;"classic":筛选 classic(普通) 队列;"quorum":筛选 quorum 队列 QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"` // 排序依据的字段: @@ -6686,28 +7074,30 @@ type DescribeRabbitMQQueuesRequestParams struct { SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` // 排序顺序,ascend 或 descend + // ascend:升序 + // descend:降序 SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"` } type DescribeRabbitMQQueuesRequest struct { *tchttp.BaseRequest - // 实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // Vhost参数 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // 分页Offset + // 分页 Offset,默认 0 Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 分页Limit + // 分页 Limit,默认 20 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 搜索关键词 SearchWord *string `json:"SearchWord,omitnil,omitempty" name:"SearchWord"` - // 队列类型筛选,不填或 "all":classic 和 quorum 队列;"classic":筛选 classic 队列;"quorum":筛选 quorum 队列 + // 队列类型筛选,不填或 "all":筛选普通队列 和 quorum 队列;"classic":筛选 classic(普通) 队列;"quorum":筛选 quorum 队列 QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"` // 排序依据的字段: @@ -6719,6 +7109,8 @@ type DescribeRabbitMQQueuesRequest struct { SortElement *string `json:"SortElement,omitnil,omitempty" name:"SortElement"` // 排序顺序,ascend 或 descend + // ascend:升序 + // descend:降序 SortOrder *string `json:"SortOrder,omitnil,omitempty" name:"SortOrder"` } @@ -6750,12 +7142,10 @@ func (r *DescribeRabbitMQQueuesRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQQueuesResponseParams struct { - // 列表信息 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 队列列表信息 QueueInfoList []*RabbitMQQueueListInfo `json:"QueueInfoList,omitnil,omitempty" name:"QueueInfoList"` - // 数量 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 队列数量 TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -6780,44 +7170,46 @@ func (r *DescribeRabbitMQQueuesResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQUserRequestParams struct { - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 用户名检索,支持前缀匹配,后缀匹配 SearchUser *string `json:"SearchUser,omitnil,omitempty" name:"SearchUser"` - // 分页Offset + // 分页 Offset,默认 0 Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 分页Limit + // 分页 Limit,默认 20 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 用户名,精确查询 User *string `json:"User,omitnil,omitempty" name:"User"` - // 用户标签,根据标签过滤列表 + // 用户标签,用于决定改用户访问 RabbitMQ Management 的权限范围 + // management:普通控制台用户,monitoring:管理型控制台用户,其他值:非控制台用户 Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"` } type DescribeRabbitMQUserRequest struct { *tchttp.BaseRequest - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 用户名检索,支持前缀匹配,后缀匹配 SearchUser *string `json:"SearchUser,omitnil,omitempty" name:"SearchUser"` - // 分页Offset + // 分页 Offset,默认 0 Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` - // 分页Limit + // 分页 Limit,默认 20 Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` // 用户名,精确查询 User *string `json:"User,omitnil,omitempty" name:"User"` - // 用户标签,根据标签过滤列表 + // 用户标签,用于决定改用户访问 RabbitMQ Management 的权限范围 + // management:普通控制台用户,monitoring:管理型控制台用户,其他值:非控制台用户 Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"` } @@ -6875,14 +7267,14 @@ func (r *DescribeRabbitMQUserResponse) FromJsonString(s string) error { // Predefined struct for user type DescribeRabbitMQVipInstanceRequestParams struct { - // 集群ID + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` } type DescribeRabbitMQVipInstanceRequest struct { *tchttp.BaseRequest - // 集群ID + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` } @@ -6914,11 +7306,9 @@ type DescribeRabbitMQVipInstanceResponseParams struct { ClusterSpecInfo *RabbitMQClusterSpecInfo `json:"ClusterSpecInfo,omitnil,omitempty" name:"ClusterSpecInfo"` // 集群访问 - // 注意:此字段可能返回 null,表示取不到有效值。 ClusterNetInfo *RabbitMQClusterAccessInfo `json:"ClusterNetInfo,omitnil,omitempty" name:"ClusterNetInfo"` // 集群白名单 - // 注意:此字段可能返回 null,表示取不到有效值。 ClusterWhiteListInfo *RabbitMQClusterWhiteListInfo `json:"ClusterWhiteListInfo,omitnil,omitempty" name:"ClusterWhiteListInfo"` // vhost配额信息 @@ -6930,6 +7320,9 @@ type DescribeRabbitMQVipInstanceResponseParams struct { // queue配额信息 QueueQuota *QueueQuota `json:"QueueQuota,omitnil,omitempty" name:"QueueQuota"` + // 用户配额信息 + UserQuota *RabbitMQUserQuota `json:"UserQuota,omitnil,omitempty" name:"UserQuota"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } @@ -6955,10 +7348,10 @@ type DescribeRabbitMQVipInstancesRequestParams struct { // 查询条件过滤器 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - // 查询数目上限,默认20 + // 查询数目上限,默认 20 Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 查询起始位置 + // 查询起始位置,默认 0 Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` } @@ -6968,10 +7361,10 @@ type DescribeRabbitMQVipInstancesRequest struct { // 查询条件过滤器 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` - // 查询数目上限,默认20 + // 查询数目上限,默认 20 Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` - // 查询起始位置 + // 查询起始位置,默认 0 Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` } @@ -7024,81 +7417,6 @@ func (r *DescribeRabbitMQVipInstancesResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } -// Predefined struct for user -type DescribeRabbitMQVirtualHostListRequestParams struct { - // 不适用,默认参数 - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // 偏移量 - Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - - // 一页限制 - Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` -} - -type DescribeRabbitMQVirtualHostListRequest struct { - *tchttp.BaseRequest - - // 不适用,默认参数 - InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - - // 偏移量 - Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` - - // 一页限制 - Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` -} - -func (r *DescribeRabbitMQVirtualHostListRequest) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *DescribeRabbitMQVirtualHostListRequest) FromJsonString(s string) error { - f := make(map[string]interface{}) - if err := json.Unmarshal([]byte(s), &f); err != nil { - return err - } - delete(f, "InstanceId") - delete(f, "Offset") - delete(f, "Limit") - if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRabbitMQVirtualHostListRequest has unknown keys!", "") - } - return json.Unmarshal([]byte(s), &r) -} - -// Predefined struct for user -type DescribeRabbitMQVirtualHostListResponseParams struct { - // 集群列表数量 - TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` - - // 集群列表 - // 注意:此字段可能返回 null,表示取不到有效值。 - VirtualHostList []*RabbitMQPrivateVirtualHost `json:"VirtualHostList,omitnil,omitempty" name:"VirtualHostList"` - - // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` -} - -type DescribeRabbitMQVirtualHostListResponse struct { - *tchttp.BaseResponse - Response *DescribeRabbitMQVirtualHostListResponseParams `json:"Response"` -} - -func (r *DescribeRabbitMQVirtualHostListResponse) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *DescribeRabbitMQVirtualHostListResponse) FromJsonString(s string) error { - return json.Unmarshal([]byte(s), &r) -} - // Predefined struct for user type DescribeRabbitMQVirtualHostRequestParams struct { // 集群实例Id @@ -7660,7 +7978,7 @@ type DescribeRocketMQEnvironmentRolesRequestParams struct { // 必填字段,RocketMQ集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` - // 环境(命名空间)名称。 + // 命名空间 EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` // 起始下标,不填默认为0。 @@ -7672,10 +7990,7 @@ type DescribeRocketMQEnvironmentRolesRequestParams struct { // 角色名称 RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` - // * RoleName - // 按照角色名进行过滤,精确查询。 - // 类型:String - // 必选:否 + // RoleName按照角色名进行过滤,精确查询。类型:String必选:否 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` } @@ -7685,7 +8000,7 @@ type DescribeRocketMQEnvironmentRolesRequest struct { // 必填字段,RocketMQ集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` - // 环境(命名空间)名称。 + // 命名空间 EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` // 起始下标,不填默认为0。 @@ -7697,10 +8012,7 @@ type DescribeRocketMQEnvironmentRolesRequest struct { // 角色名称 RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` - // * RoleName - // 按照角色名进行过滤,精确查询。 - // 类型:String - // 必选:否 + // RoleName按照角色名进行过滤,精确查询。类型:String必选:否 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` } @@ -7776,7 +8088,7 @@ type DescribeRocketMQGroupsRequestParams struct { // 按消费组名称查询消费组,支持模糊查询 FilterGroup *string `json:"FilterGroup,omitnil,omitempty" name:"FilterGroup"` - // 按照指定字段排序,可选值为tps,accumulative + // 按照指定字段排序,可选值为 subscribeNum: 订阅 Topic 个数 SortedBy *string `json:"SortedBy,omitnil,omitempty" name:"SortedBy"` // 按升序或降序排列,可选值为asc,desc @@ -7810,7 +8122,7 @@ type DescribeRocketMQGroupsRequest struct { // 按消费组名称查询消费组,支持模糊查询 FilterGroup *string `json:"FilterGroup,omitnil,omitempty" name:"FilterGroup"` - // 按照指定字段排序,可选值为tps,accumulative + // 按照指定字段排序,可选值为 subscribeNum: 订阅 Topic 个数 SortedBy *string `json:"SortedBy,omitnil,omitempty" name:"SortedBy"` // 按升序或降序排列,可选值为asc,desc @@ -8183,48 +8495,7 @@ func (r *DescribeRocketMQMsgTraceRequest) FromJsonString(s string) error { // Predefined struct for user type DescribeRocketMQMsgTraceResponseParams struct { - // [ - // { - // "Stage": "produce", - // "Data": { - // "ProducerName": "生产者名", - // "ProduceTime": "消息生产时间", - // "ProducerAddr": "客户端地址", - // "Duration": "耗时ms", - // "Status": "状态(0:成功,1:失败)" - // } - // }, - // { - // "Stage": "persist", - // "Data": { - // "PersistTime": "存储时间", - // "Duration": "耗时ms", - // "Status": "状态(0:成功,1:失败)" - // } - // }, - // { - // "Stage": "consume", - // "Data": { - // "TotalCount": 2, - // "RocketMqConsumeLogs": [ - // { - // "ConsumerGroup": "消费组", - // "ConsumeModel": "消费模式", - // "ConsumerAddr": "消费者地址", - // "ConsumeTime": "推送时间", - // "Status": "状态(0:已推送未确认, 2:已确认, 3:转入重试, 4:已重试未确认, 5:已转入死信队列)" - // }, - // { - // "ConsumerGroup": "消费组", - // "ConsumeModel": "消费模式", - // "ConsumerAddr": "消费者地址", - // "ConsumeTime": "推送时间", - // "Status": "状态(0:已推送未确认, 2:已确认, 3:转入重试, 4:已重试未确认, 5:已转入死信队列)" - // } - // ] - // } - // } - // ] + // 轨迹详情列表 Result []*TraceResult `json:"Result,omitnil,omitempty" name:"Result"` // 消息轨迹页展示的topic名称 @@ -8265,69 +8536,170 @@ type DescribeRocketMQNamespacesRequestParams struct { NameKeyword *string `json:"NameKeyword,omitnil,omitempty" name:"NameKeyword"` } -type DescribeRocketMQNamespacesRequest struct { +type DescribeRocketMQNamespacesRequest struct { + *tchttp.BaseRequest + + // 集群ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 偏移量 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 限制数目 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 按名称搜索 + NameKeyword *string `json:"NameKeyword,omitnil,omitempty" name:"NameKeyword"` +} + +func (r *DescribeRocketMQNamespacesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQNamespacesRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "ClusterId") + delete(f, "Offset") + delete(f, "Limit") + delete(f, "NameKeyword") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQNamespacesRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRocketMQNamespacesResponseParams struct { + // 命名空间列表 + Namespaces []*RocketMQNamespace `json:"Namespaces,omitnil,omitempty" name:"Namespaces"` + + // 总条数 + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeRocketMQNamespacesResponse struct { + *tchttp.BaseResponse + Response *DescribeRocketMQNamespacesResponseParams `json:"Response"` +} + +func (r *DescribeRocketMQNamespacesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQNamespacesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRocketMQProducersRequestParams struct { + // 集群ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 命名空间 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` + + // 主题名 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` + + // 分页offset + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 分页limit + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 过滤查询条件列表,支持以下过滤参数: + // + // - ClientId:生产者客户端ID + // - ClientIp:生产者客户端IP + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` +} + +type DescribeRocketMQProducersRequest struct { *tchttp.BaseRequest // 集群ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` - // 偏移量 - Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` + // 命名空间 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` - // 限制数目 - Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` + // 主题名 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` - // 按名称搜索 - NameKeyword *string `json:"NameKeyword,omitnil,omitempty" name:"NameKeyword"` + // 分页offset + Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 分页limit + Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"` + + // 过滤查询条件列表,支持以下过滤参数: + // + // - ClientId:生产者客户端ID + // - ClientIp:生产者客户端IP + Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` } -func (r *DescribeRocketMQNamespacesRequest) ToJsonString() string { +func (r *DescribeRocketMQProducersRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeRocketMQNamespacesRequest) FromJsonString(s string) error { +func (r *DescribeRocketMQProducersRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } delete(f, "ClusterId") + delete(f, "NamespaceId") + delete(f, "Topic") delete(f, "Offset") delete(f, "Limit") - delete(f, "NameKeyword") + delete(f, "Filters") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQNamespacesRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQProducersRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type DescribeRocketMQNamespacesResponseParams struct { - // 命名空间列表 - Namespaces []*RocketMQNamespace `json:"Namespaces,omitnil,omitempty" name:"Namespaces"` +type DescribeRocketMQProducersResponseParams struct { + // 生产者客户端列表 + Producers []*ProducerInfo `json:"Producers,omitnil,omitempty" name:"Producers"` - // 总条数 - TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + // 总数 + TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type DescribeRocketMQNamespacesResponse struct { +type DescribeRocketMQProducersResponse struct { *tchttp.BaseResponse - Response *DescribeRocketMQNamespacesResponseParams `json:"Response"` + Response *DescribeRocketMQProducersResponseParams `json:"Response"` } -func (r *DescribeRocketMQNamespacesResponse) ToJsonString() string { +func (r *DescribeRocketMQProducersResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *DescribeRocketMQNamespacesResponse) FromJsonString(s string) error { +func (r *DescribeRocketMQProducersResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } @@ -8501,6 +8873,10 @@ type DescribeRocketMQPublicAccessPointResponseParams struct { // 注意:此字段可能返回 null,表示取不到有效值。 PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"` + // 公网是否按流量计费 + // 注意:此字段可能返回 null,表示取不到有效值。 + BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } @@ -8535,10 +8911,7 @@ type DescribeRocketMQRolesRequestParams struct { // 角色名称,模糊查询 RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` - // * RoleName - // 按照角色名进行过滤,精确查询。 - // 类型:String - // 必选:否 + // RoleName按照角色名进行过滤,精确查询。类型:String必选:否 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` } @@ -8557,10 +8930,7 @@ type DescribeRocketMQRolesRequest struct { // 角色名称,模糊查询 RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` - // * RoleName - // 按照角色名进行过滤,精确查询。 - // 类型:String - // 必选:否 + // RoleName按照角色名进行过滤,精确查询。类型:String必选:否 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` } @@ -9079,6 +9449,93 @@ func (r *DescribeRocketMQSubscriptionsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DescribeRocketMQTopUsagesRequestParams struct { + // 集群ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 指标名称,支持以下: + // consumeLag,消费组堆积数量 + // deadLetterCount,死信数量 + // topicRateIn, Topic生产速率 + // topicRateOut,Topic消费速率 + // topicStorageSize,Topic存储空间 + // topicApiCalls,Topic API调用次数 + MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` + + // 排序数量,最大20 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +type DescribeRocketMQTopUsagesRequest struct { + *tchttp.BaseRequest + + // 集群ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 指标名称,支持以下: + // consumeLag,消费组堆积数量 + // deadLetterCount,死信数量 + // topicRateIn, Topic生产速率 + // topicRateOut,Topic消费速率 + // topicStorageSize,Topic存储空间 + // topicApiCalls,Topic API调用次数 + MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"` + + // 排序数量,最大20 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +func (r *DescribeRocketMQTopUsagesRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQTopUsagesRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "ClusterId") + delete(f, "MetricName") + delete(f, "Limit") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopUsagesRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRocketMQTopUsagesResponseParams struct { + // 指标值列表 + Values []*int64 `json:"Values,omitnil,omitempty" name:"Values"` + + // 指标值对应的维度组合,本接口存在以下几个维度: + // tenant,namespace,group,topic + Dimensions []*DimensionInstance `json:"Dimensions,omitnil,omitempty" name:"Dimensions"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeRocketMQTopUsagesResponse struct { + *tchttp.BaseResponse + Response *DescribeRocketMQTopUsagesResponseParams `json:"Response"` +} + +func (r *DescribeRocketMQTopUsagesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQTopUsagesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DescribeRocketMQTopicMsgsRequestParams struct { // 集群 ID @@ -9236,6 +9693,165 @@ func (r *DescribeRocketMQTopicMsgsResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type DescribeRocketMQTopicStatsRequestParams struct { + // 实例ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 命名空间 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` + + // 主题名 + TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` +} + +type DescribeRocketMQTopicStatsRequest struct { + *tchttp.BaseRequest + + // 实例ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 命名空间 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` + + // 主题名 + TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` +} + +func (r *DescribeRocketMQTopicStatsRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQTopicStatsRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "ClusterId") + delete(f, "NamespaceId") + delete(f, "TopicName") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopicStatsRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRocketMQTopicStatsResponseParams struct { + // 生产详情列表 + TopicStatsList []*TopicStats `json:"TopicStatsList,omitnil,omitempty" name:"TopicStatsList"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeRocketMQTopicStatsResponse struct { + *tchttp.BaseResponse + Response *DescribeRocketMQTopicStatsResponseParams `json:"Response"` +} + +func (r *DescribeRocketMQTopicStatsResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQTopicStatsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRocketMQTopicsByGroupRequestParams struct { + // 集群ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 命名空间名称 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` + + // 消费组名称 + GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"` + + // 偏移量 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 限制条数 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +type DescribeRocketMQTopicsByGroupRequest struct { + *tchttp.BaseRequest + + // 集群ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 命名空间名称 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` + + // 消费组名称 + GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"` + + // 偏移量 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 限制条数 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +func (r *DescribeRocketMQTopicsByGroupRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQTopicsByGroupRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "ClusterId") + delete(f, "NamespaceId") + delete(f, "GroupId") + delete(f, "Offset") + delete(f, "Limit") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRocketMQTopicsByGroupRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type DescribeRocketMQTopicsByGroupResponseParams struct { + // 总条数 + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 主题列表 + Topics []*string `json:"Topics,omitnil,omitempty" name:"Topics"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type DescribeRocketMQTopicsByGroupResponse struct { + *tchttp.BaseResponse + Response *DescribeRocketMQTopicsByGroupResponseParams `json:"Response"` +} + +func (r *DescribeRocketMQTopicsByGroupResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeRocketMQTopicsByGroupResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type DescribeRocketMQTopicsRequestParams struct { // 查询偏移量 @@ -9403,6 +10019,7 @@ type DescribeRocketMQVipInstancesRequestParams struct { // 查询条件过滤器,支持的查询条件如下: // instanceIds - 实例ID // instanceName - 实例名称 + // status - 实例状态 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 查询数目上限,默认20 @@ -9418,6 +10035,7 @@ type DescribeRocketMQVipInstancesRequest struct { // 查询条件过滤器,支持的查询条件如下: // instanceIds - 实例ID // instanceName - 实例名称 + // status - 实例状态 Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"` // 查询数目上限,默认20 @@ -9902,10 +10520,43 @@ func (r *DescribeTopicsResponse) ToJsonString() string { return string(b) } -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *DescribeTopicsResponse) FromJsonString(s string) error { - return json.Unmarshal([]byte(s), &r) +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *DescribeTopicsResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +type DetailedRolePerm struct { + // 权限对应的资源 + Resource *string `json:"Resource,omitnil,omitempty" name:"Resource"` + + // 是否开启生产权限 + PermWrite *bool `json:"PermWrite,omitnil,omitempty" name:"PermWrite"` + + // 是否开启消费权限 + PermRead *bool `json:"PermRead,omitnil,omitempty" name:"PermRead"` + + // 授权资源类型(Topic:主题; Group:消费组) + ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"` + + // 资源备注 + Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` +} + +type DimensionInstance struct { + // 实例的维度组合 + // 注意:此字段可能返回 null,表示取不到有效值。 + Dimensions []*DimensionOpt `json:"Dimensions,omitnil,omitempty" name:"Dimensions"` +} + +type DimensionOpt struct { + // 查询的维度名称 + // 注意:此字段可能返回 null,表示取不到有效值。 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 查询维度的值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Value *string `json:"Value,omitnil,omitempty" name:"Value"` } type Environment struct { @@ -9979,10 +10630,60 @@ type ExchangeQuota struct { MaxExchange *int64 `json:"MaxExchange,omitnil,omitempty" name:"MaxExchange"` // 已创建exchange数 - // 注意:此字段可能返回 null,表示取不到有效值。 UsedExchange *int64 `json:"UsedExchange,omitnil,omitempty" name:"UsedExchange"` } +// Predefined struct for user +type ExecuteDisasterRecoveryRequestParams struct { + +} + +type ExecuteDisasterRecoveryRequest struct { + *tchttp.BaseRequest + +} + +func (r *ExecuteDisasterRecoveryRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ExecuteDisasterRecoveryRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ExecuteDisasterRecoveryRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ExecuteDisasterRecoveryResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ExecuteDisasterRecoveryResponse struct { + *tchttp.BaseResponse + Response *ExecuteDisasterRecoveryResponseParams `json:"Response"` +} + +func (r *ExecuteDisasterRecoveryResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ExecuteDisasterRecoveryResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ExportRocketMQMessageDetailRequestParams struct { // 集群id @@ -10139,6 +10840,87 @@ type FilterSubscription struct { SubscriptionNames []*string `json:"SubscriptionNames,omitnil,omitempty" name:"SubscriptionNames"` } +// Predefined struct for user +type GetTopicListRequestParams struct { + // 环境(命名空间)名称。 + EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` + + // Pulsar 集群的ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 起始下标,不填默认为0。 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 返回数量,不填则默认为10,最大值为20。 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +type GetTopicListRequest struct { + *tchttp.BaseRequest + + // 环境(命名空间)名称。 + EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` + + // Pulsar 集群的ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 起始下标,不填默认为0。 + Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"` + + // 返回数量,不填则默认为10,最大值为20。 + Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"` +} + +func (r *GetTopicListRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *GetTopicListRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "EnvironmentId") + delete(f, "ClusterId") + delete(f, "Offset") + delete(f, "Limit") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "GetTopicListRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type GetTopicListResponseParams struct { + // 主题数量。 + TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"` + + // 主题列表 + TopicList []*Topic_Simplification `json:"TopicList,omitnil,omitempty" name:"TopicList"` + + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type GetTopicListResponse struct { + *tchttp.BaseResponse + Response *GetTopicListResponseParams `json:"Response"` +} + +func (r *GetTopicListResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *GetTopicListResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ImportRocketMQConsumerGroupsRequestParams struct { // 导入topic @@ -10270,6 +11052,13 @@ type InstanceNodeDistribution struct { // 节点数 NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"` + + // 有调度任务且没有切回的可用区,此标识为true + NodePermWipeFlag *bool `json:"NodePermWipeFlag,omitnil,omitempty" name:"NodePermWipeFlag"` + + // 可用区状态 + // 注意:此字段可能返回 null,表示取不到有效值。 + ZoneStatus *string `json:"ZoneStatus,omitnil,omitempty" name:"ZoneStatus"` } type InternalTenant struct { @@ -10383,74 +11172,6 @@ type MigrateTopic struct { HealthCheckError *string `json:"HealthCheckError,omitnil,omitempty" name:"HealthCheckError"` } -// Predefined struct for user -type ModifyAMQPClusterRequestParams struct { - // 集群ID - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` - - // 3-64个字符,只能包含字母、数字、“-”及“_” - ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - - // 说明信息,不超过128个字符 - Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` -} - -type ModifyAMQPClusterRequest struct { - *tchttp.BaseRequest - - // 集群ID - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` - - // 3-64个字符,只能包含字母、数字、“-”及“_” - ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - - // 说明信息,不超过128个字符 - Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` -} - -func (r *ModifyAMQPClusterRequest) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *ModifyAMQPClusterRequest) FromJsonString(s string) error { - f := make(map[string]interface{}) - if err := json.Unmarshal([]byte(s), &f); err != nil { - return err - } - delete(f, "ClusterId") - delete(f, "ClusterName") - delete(f, "Remark") - if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyAMQPClusterRequest has unknown keys!", "") - } - return json.Unmarshal([]byte(s), &r) -} - -// Predefined struct for user -type ModifyAMQPClusterResponseParams struct { - // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 - RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` -} - -type ModifyAMQPClusterResponse struct { - *tchttp.BaseResponse - Response *ModifyAMQPClusterResponseParams `json:"Response"` -} - -func (r *ModifyAMQPClusterResponse) ToJsonString() string { - b, _ := json.Marshal(r) - return string(b) -} - -// FromJsonString It is highly **NOT** recommended to use this function -// because it has no param check, nor strict type check -func (r *ModifyAMQPClusterResponse) FromJsonString(s string) error { - return json.Unmarshal([]byte(s), &r) -} - // Predefined struct for user type ModifyClusterRequestParams struct { // Pulsar 集群的ID,需要更新的集群Id。 @@ -10459,7 +11180,7 @@ type ModifyClusterRequestParams struct { // 更新后的集群名称。 ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - // 说明信息。 + // 说明信息。长度限制为 128 字节 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` // 开启公网访问,只能为true @@ -10475,7 +11196,7 @@ type ModifyClusterRequest struct { // 更新后的集群名称。 ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - // 说明信息。 + // 说明信息。长度限制为 128 字节 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` // 开启公网访问,只能为true @@ -10561,7 +11282,7 @@ type ModifyCmqQueueAttributeRequestParams struct { // 死信队列名称 DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"` - // MaxTimeToLivepolicy为1时必选。最大未消费过期时间。范围300-43200,单位秒,需要小于消息最大保留时间MsgRetentionSeconds + // policy为1时必选。最大未消费过期时间。范围300-43200,单位秒,需要小于消息最大保留时间MsgRetentionSeconds MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"` // 最大接收次数 @@ -10613,7 +11334,7 @@ type ModifyCmqQueueAttributeRequest struct { // 死信队列名称 DeadLetterQueueName *string `json:"DeadLetterQueueName,omitnil,omitempty" name:"DeadLetterQueueName"` - // MaxTimeToLivepolicy为1时必选。最大未消费过期时间。范围300-43200,单位秒,需要小于消息最大保留时间MsgRetentionSeconds + // policy为1时必选。最大未消费过期时间。范围300-43200,单位秒,需要小于消息最大保留时间MsgRetentionSeconds MaxTimeToLive *uint64 `json:"MaxTimeToLive,omitnil,omitempty" name:"MaxTimeToLive"` // 最大接收次数 @@ -10948,199 +11669,264 @@ type ModifyEnvironmentAttributesResponse struct { Response *ModifyEnvironmentAttributesResponseParams `json:"Response"` } -func (r *ModifyEnvironmentAttributesResponse) ToJsonString() string { +func (r *ModifyEnvironmentAttributesResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyEnvironmentAttributesResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyEnvironmentRoleRequestParams struct { + // 环境(命名空间)名称。 + EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` + + // 角色名称。 + RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` + + // 授权项,最多只能包含produce、consume两项的非空字符串数组。 + Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"` + + // 必填字段,集群的ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` +} + +type ModifyEnvironmentRoleRequest struct { + *tchttp.BaseRequest + + // 环境(命名空间)名称。 + EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` + + // 角色名称。 + RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` + + // 授权项,最多只能包含produce、consume两项的非空字符串数组。 + Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"` + + // 必填字段,集群的ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` +} + +func (r *ModifyEnvironmentRoleRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyEnvironmentRoleRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "EnvironmentId") + delete(f, "RoleName") + delete(f, "Permissions") + delete(f, "ClusterId") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyEnvironmentRoleRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyEnvironmentRoleResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ModifyEnvironmentRoleResponse struct { + *tchttp.BaseResponse + Response *ModifyEnvironmentRoleResponseParams `json:"Response"` +} + +func (r *ModifyEnvironmentRoleResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *ModifyEnvironmentAttributesResponse) FromJsonString(s string) error { +func (r *ModifyEnvironmentRoleResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type ModifyEnvironmentRoleRequestParams struct { - // 环境(命名空间)名称。 - EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` - - // 角色名称。 - RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` - - // 授权项,最多只能包含produce、consume两项的非空字符串数组。 - Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"` +type ModifyPublicNetworkSecurityPolicyRequestParams struct { + // 集群id + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 必填字段,集群的ID - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + // 策略列表 + PolicyList []*SecurityPolicy `json:"PolicyList,omitnil,omitempty" name:"PolicyList"` } -type ModifyEnvironmentRoleRequest struct { +type ModifyPublicNetworkSecurityPolicyRequest struct { *tchttp.BaseRequest - // 环境(命名空间)名称。 - EnvironmentId *string `json:"EnvironmentId,omitnil,omitempty" name:"EnvironmentId"` - - // 角色名称。 - RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"` - - // 授权项,最多只能包含produce、consume两项的非空字符串数组。 - Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"` + // 集群id + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 必填字段,集群的ID - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + // 策略列表 + PolicyList []*SecurityPolicy `json:"PolicyList,omitnil,omitempty" name:"PolicyList"` } -func (r *ModifyEnvironmentRoleRequest) ToJsonString() string { +func (r *ModifyPublicNetworkSecurityPolicyRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *ModifyEnvironmentRoleRequest) FromJsonString(s string) error { +func (r *ModifyPublicNetworkSecurityPolicyRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "EnvironmentId") - delete(f, "RoleName") - delete(f, "Permissions") - delete(f, "ClusterId") + delete(f, "InstanceId") + delete(f, "PolicyList") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyEnvironmentRoleRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyPublicNetworkSecurityPolicyRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type ModifyEnvironmentRoleResponseParams struct { +type ModifyPublicNetworkSecurityPolicyResponseParams struct { + // SUCCESS或者FAILURE + ModifyResult *string `json:"ModifyResult,omitnil,omitempty" name:"ModifyResult"` + + // 集群id + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type ModifyEnvironmentRoleResponse struct { +type ModifyPublicNetworkSecurityPolicyResponse struct { *tchttp.BaseResponse - Response *ModifyEnvironmentRoleResponseParams `json:"Response"` + Response *ModifyPublicNetworkSecurityPolicyResponseParams `json:"Response"` } -func (r *ModifyEnvironmentRoleResponse) ToJsonString() string { +func (r *ModifyPublicNetworkSecurityPolicyResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *ModifyEnvironmentRoleResponse) FromJsonString(s string) error { +func (r *ModifyPublicNetworkSecurityPolicyResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type ModifyPublicNetworkAccessPointRequestParams struct { - // 集群名字 - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` +type ModifyRabbitMQPermissionRequestParams struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 是否开启 - PublicNetworkAccessPointStatus *bool `json:"PublicNetworkAccessPointStatus,omitnil,omitempty" name:"PublicNetworkAccessPointStatus"` + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` - // 必填,公网控制台的开关/Vpc控制台的开关,示例值,Public/Vpc - SwitchOwner *string `json:"SwitchOwner,omitnil,omitempty" name:"SwitchOwner"` + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // Vpc - VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"` + // 权限类型,declare相关操作,该用户可操作该vhost下的资源名称正则表达式 + ConfigRegexp *string `json:"ConfigRegexp,omitnil,omitempty" name:"ConfigRegexp"` - // 子网 - SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` + // 权限类型,消息写入相关操作,该用户可操作该vhost下的资源名称正则表达式 + WriteRegexp *string `json:"WriteRegexp,omitnil,omitempty" name:"WriteRegexp"` - // 子网下面指定ip作为vpc接入点 - SelectIp *string `json:"SelectIp,omitnil,omitempty" name:"SelectIp"` + // 权限类型,消息读取相关操作,该用户可操作该vhost下的资源名称正则表达式 + ReadRegexp *string `json:"ReadRegexp,omitnil,omitempty" name:"ReadRegexp"` } -type ModifyPublicNetworkAccessPointRequest struct { +type ModifyRabbitMQPermissionRequest struct { *tchttp.BaseRequest - // 集群名字 - ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 是否开启 - PublicNetworkAccessPointStatus *bool `json:"PublicNetworkAccessPointStatus,omitnil,omitempty" name:"PublicNetworkAccessPointStatus"` + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` - // 必填,公网控制台的开关/Vpc控制台的开关,示例值,Public/Vpc - SwitchOwner *string `json:"SwitchOwner,omitnil,omitempty" name:"SwitchOwner"` + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // Vpc - VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"` + // 权限类型,declare相关操作,该用户可操作该vhost下的资源名称正则表达式 + ConfigRegexp *string `json:"ConfigRegexp,omitnil,omitempty" name:"ConfigRegexp"` - // 子网 - SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"` + // 权限类型,消息写入相关操作,该用户可操作该vhost下的资源名称正则表达式 + WriteRegexp *string `json:"WriteRegexp,omitnil,omitempty" name:"WriteRegexp"` - // 子网下面指定ip作为vpc接入点 - SelectIp *string `json:"SelectIp,omitnil,omitempty" name:"SelectIp"` + // 权限类型,消息读取相关操作,该用户可操作该vhost下的资源名称正则表达式 + ReadRegexp *string `json:"ReadRegexp,omitnil,omitempty" name:"ReadRegexp"` } -func (r *ModifyPublicNetworkAccessPointRequest) ToJsonString() string { +func (r *ModifyRabbitMQPermissionRequest) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *ModifyPublicNetworkAccessPointRequest) FromJsonString(s string) error { +func (r *ModifyRabbitMQPermissionRequest) FromJsonString(s string) error { f := make(map[string]interface{}) if err := json.Unmarshal([]byte(s), &f); err != nil { return err } - delete(f, "ClusterId") - delete(f, "PublicNetworkAccessPointStatus") - delete(f, "SwitchOwner") - delete(f, "VpcId") - delete(f, "SubnetId") - delete(f, "SelectIp") + delete(f, "InstanceId") + delete(f, "User") + delete(f, "VirtualHost") + delete(f, "ConfigRegexp") + delete(f, "WriteRegexp") + delete(f, "ReadRegexp") if len(f) > 0 { - return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyPublicNetworkAccessPointRequest has unknown keys!", "") + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRabbitMQPermissionRequest has unknown keys!", "") } return json.Unmarshal([]byte(s), &r) } // Predefined struct for user -type ModifyPublicNetworkAccessPointResponseParams struct { - // 修改结果 - ModifyResult *string `json:"ModifyResult,omitnil,omitempty" name:"ModifyResult"` - +type ModifyRabbitMQPermissionResponseParams struct { // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` } -type ModifyPublicNetworkAccessPointResponse struct { +type ModifyRabbitMQPermissionResponse struct { *tchttp.BaseResponse - Response *ModifyPublicNetworkAccessPointResponseParams `json:"Response"` + Response *ModifyRabbitMQPermissionResponseParams `json:"Response"` } -func (r *ModifyPublicNetworkAccessPointResponse) ToJsonString() string { +func (r *ModifyRabbitMQPermissionResponse) ToJsonString() string { b, _ := json.Marshal(r) return string(b) } // FromJsonString It is highly **NOT** recommended to use this function // because it has no param check, nor strict type check -func (r *ModifyPublicNetworkAccessPointResponse) FromJsonString(s string) error { +func (r *ModifyRabbitMQPermissionResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } // Predefined struct for user type ModifyRabbitMQUserRequestParams struct { - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 用户名,登录时使用 + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 User *string `json:"User,omitnil,omitempty" name:"User"` - // 密码,登录时使用 + // 密码,登录时使用。规范:不能为空,8-64个字符,至少要包含小写字母、大写字母、数字、特殊字符【()`~!@#$%^&*_=|{}[]:;',.?/】中的两项 Password *string `json:"Password,omitnil,omitempty" name:"Password"` // 描述,不传则不修改 Description *string `json:"Description,omitnil,omitempty" name:"Description"` - // 用户标签,用于决定改用户访问RabbitMQ Management的权限范围,不传则不修改 + // 用户标签,用于决定改用户访问 RabbitMQ Management 的权限范围 + // management:普通控制台用户,monitoring:管理型控制台用户,其他值:非控制台用户 Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"` // 该用户的最大连接数,不传则不修改 @@ -11153,19 +11939,20 @@ type ModifyRabbitMQUserRequestParams struct { type ModifyRabbitMQUserRequest struct { *tchttp.BaseRequest - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 用户名,登录时使用 + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 User *string `json:"User,omitnil,omitempty" name:"User"` - // 密码,登录时使用 + // 密码,登录时使用。规范:不能为空,8-64个字符,至少要包含小写字母、大写字母、数字、特殊字符【()`~!@#$%^&*_=|{}[]:;',.?/】中的两项 Password *string `json:"Password,omitnil,omitempty" name:"Password"` // 描述,不传则不修改 Description *string `json:"Description,omitnil,omitempty" name:"Description"` - // 用户标签,用于决定改用户访问RabbitMQ Management的权限范围,不传则不修改 + // 用户标签,用于决定改用户访问 RabbitMQ Management 的权限范围 + // management:普通控制台用户,monitoring:管理型控制台用户,其他值:非控制台用户 Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"` // 该用户的最大连接数,不传则不修改 @@ -11227,11 +12014,14 @@ type ModifyRabbitMQVipInstanceRequestParams struct { // 实例Id InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 集群名称 + // 集群名称,不填则不修改。非空字符串时必须 3-64 个字符,只能包含数字、字母、“-”和“_” ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - // 备注 + // 备注,不填则不修改 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 是否开启删除保护,不填则不修改 + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` } type ModifyRabbitMQVipInstanceRequest struct { @@ -11240,11 +12030,14 @@ type ModifyRabbitMQVipInstanceRequest struct { // 实例Id InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // 集群名称 + // 集群名称,不填则不修改。非空字符串时必须 3-64 个字符,只能包含数字、字母、“-”和“_” ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"` - // 备注 + // 备注,不填则不修改 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 是否开启删除保护,不填则不修改 + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` } func (r *ModifyRabbitMQVipInstanceRequest) ToJsonString() string { @@ -11262,6 +12055,7 @@ func (r *ModifyRabbitMQVipInstanceRequest) FromJsonString(s string) error { delete(f, "InstanceId") delete(f, "ClusterName") delete(f, "Remark") + delete(f, "EnableDeletionProtection") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRabbitMQVipInstanceRequest has unknown keys!", "") } @@ -11271,7 +12065,6 @@ func (r *ModifyRabbitMQVipInstanceRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyRabbitMQVipInstanceResponseParams struct { // 实例id - // 注意:此字段可能返回 null,表示取不到有效值。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -11296,13 +12089,13 @@ func (r *ModifyRabbitMQVipInstanceResponse) FromJsonString(s string) error { // Predefined struct for user type ModifyRabbitMQVirtualHostRequestParams struct { - // 集群实例Id + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // vhost名 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // 描述 + // Virtual Host 描述 Description *string `json:"Description,omitnil,omitempty" name:"Description"` // 消息轨迹开关,true打开,false关闭 @@ -11312,13 +12105,13 @@ type ModifyRabbitMQVirtualHostRequestParams struct { type ModifyRabbitMQVirtualHostRequest struct { *tchttp.BaseRequest - // 集群实例Id + // 实例 ID,形如amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` - // vhost名 + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到Vhost名称。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` - // 描述 + // Virtual Host 描述 Description *string `json:"Description,omitnil,omitempty" name:"Description"` // 消息轨迹开关,true打开,false关闭 @@ -11457,6 +12250,9 @@ type ModifyRocketMQEnvironmentRoleRequestParams struct { // 必填字段,集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // Topic&Group维度权限配置 + DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"` } type ModifyRocketMQEnvironmentRoleRequest struct { @@ -11473,6 +12269,9 @@ type ModifyRocketMQEnvironmentRoleRequest struct { // 必填字段,集群的ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // Topic&Group维度权限配置 + DetailedPerms []*DetailedRolePerm `json:"DetailedPerms,omitnil,omitempty" name:"DetailedPerms"` } func (r *ModifyRocketMQEnvironmentRoleRequest) ToJsonString() string { @@ -11491,6 +12290,7 @@ func (r *ModifyRocketMQEnvironmentRoleRequest) FromJsonString(s string) error { delete(f, "RoleName") delete(f, "Permissions") delete(f, "ClusterId") + delete(f, "DetailedPerms") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQEnvironmentRoleRequest has unknown keys!", "") } @@ -11615,6 +12415,88 @@ func (r *ModifyRocketMQGroupResponse) FromJsonString(s string) error { return json.Unmarshal([]byte(s), &r) } +// Predefined struct for user +type ModifyRocketMQInstanceRequestParams struct { + // 专享实例ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 实例名称 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 实例备注信息 + Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 实例消息保留时间,小时为单位 + MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"` + + // 是否开启删除保护 + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` +} + +type ModifyRocketMQInstanceRequest struct { + *tchttp.BaseRequest + + // 专享实例ID + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 实例名称 + Name *string `json:"Name,omitnil,omitempty" name:"Name"` + + // 实例备注信息 + Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 实例消息保留时间,小时为单位 + MessageRetention *int64 `json:"MessageRetention,omitnil,omitempty" name:"MessageRetention"` + + // 是否开启删除保护 + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` +} + +func (r *ModifyRocketMQInstanceRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyRocketMQInstanceRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "InstanceId") + delete(f, "Name") + delete(f, "Remark") + delete(f, "MessageRetention") + delete(f, "EnableDeletionProtection") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQInstanceRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type ModifyRocketMQInstanceResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type ModifyRocketMQInstanceResponse struct { + *tchttp.BaseResponse + Response *ModifyRocketMQInstanceResponseParams `json:"Response"` +} + +func (r *ModifyRocketMQInstanceResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *ModifyRocketMQInstanceResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type ModifyRocketMQInstanceSpecRequestParams struct { // 专享实例ID @@ -11679,7 +12561,6 @@ func (r *ModifyRocketMQInstanceSpecRequest) FromJsonString(s string) error { // Predefined struct for user type ModifyRocketMQInstanceSpecResponseParams struct { // 订单号 - // 注意:此字段可能返回 null,表示取不到有效值。 OrderId *string `json:"OrderId,omitnil,omitempty" name:"OrderId"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -11801,6 +12682,9 @@ type ModifyRocketMQRoleRequestParams struct { // 备注说明,长度必须大等于0且小等于128。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 权限类型,默认按集群授权(Cluster:集群级别;TopicAndGroup:主题&消费组级别) + PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"` } type ModifyRocketMQRoleRequest struct { @@ -11814,6 +12698,9 @@ type ModifyRocketMQRoleRequest struct { // 备注说明,长度必须大等于0且小等于128。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` + + // 权限类型,默认按集群授权(Cluster:集群级别;TopicAndGroup:主题&消费组级别) + PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"` } func (r *ModifyRocketMQRoleRequest) ToJsonString() string { @@ -11831,6 +12718,7 @@ func (r *ModifyRocketMQRoleRequest) FromJsonString(s string) error { delete(f, "RoleName") delete(f, "ClusterId") delete(f, "Remark") + delete(f, "PermType") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRocketMQRoleRequest has unknown keys!", "") } @@ -12054,6 +12942,15 @@ type ModifyTopicRequestParams struct { // 未消费消息过期时间,单位:秒,取值范围:60秒~15天。 MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"` + + // 不传默认是原生策略,DefaultPolicy表示当订阅下达到最大未确认消息数 5000 时,服务端将不再向当前订阅下的所有消费者推送消息,DynamicPolicy表示动态调整订阅下的最大未确认消息数,具体配额是在 5000 和消费者数量*20之间取最大值。每个消费者默认最大 unack 消息数为 20,超过该限制时仅影响该消费者,不影响其他消费者。 + UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"` + + // 是否开启异常消费者隔离 + IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"` + + // 消费者 Ack 超时时间,单位:秒,范围60-(3600*24 + AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"` } type ModifyTopicRequest struct { @@ -12076,6 +12973,15 @@ type ModifyTopicRequest struct { // 未消费消息过期时间,单位:秒,取值范围:60秒~15天。 MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"` + + // 不传默认是原生策略,DefaultPolicy表示当订阅下达到最大未确认消息数 5000 时,服务端将不再向当前订阅下的所有消费者推送消息,DynamicPolicy表示动态调整订阅下的最大未确认消息数,具体配额是在 5000 和消费者数量*20之间取最大值。每个消费者默认最大 unack 消息数为 20,超过该限制时仅影响该消费者,不影响其他消费者。 + UnackPolicy *string `json:"UnackPolicy,omitnil,omitempty" name:"UnackPolicy"` + + // 是否开启异常消费者隔离 + IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"` + + // 消费者 Ack 超时时间,单位:秒,范围60-(3600*24 + AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"` } func (r *ModifyTopicRequest) ToJsonString() string { @@ -12096,6 +13002,9 @@ func (r *ModifyTopicRequest) FromJsonString(s string) error { delete(f, "ClusterId") delete(f, "Remark") delete(f, "MsgTTL") + delete(f, "UnackPolicy") + delete(f, "IsolateConsumerEnable") + delete(f, "AckTimeOut") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyTopicRequest has unknown keys!", "") } @@ -12198,6 +13107,40 @@ type PartitionsTopic struct { TopicType *uint64 `json:"TopicType,omitnil,omitempty" name:"TopicType"` } +type ProducerInfo struct { + // 客户端ID + // 注意:此字段可能返回 null,表示取不到有效值。 + ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"` + + // 客户端IP + // 注意:此字段可能返回 null,表示取不到有效值。 + ClientIp *string `json:"ClientIp,omitnil,omitempty" name:"ClientIp"` + + // 客户端语言 + // JAVA((byte) 0), + // CPP((byte) 1), + // DOTNET((byte) 2), + // PYTHON((byte) 3), + // DELPHI((byte) 4), + // ERLANG((byte) 5), + // RUBY((byte) 6), + // OTHER((byte) 7), + // HTTP((byte) 8), + // GO((byte) 9), + // PHP((byte) 10), + // OMS((byte) 11); + // 注意:此字段可能返回 null,表示取不到有效值。 + Language *string `json:"Language,omitnil,omitempty" name:"Language"` + + // 客户端版本 + // 注意:此字段可能返回 null,表示取不到有效值。 + Version *string `json:"Version,omitnil,omitempty" name:"Version"` + + // 最后生产时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + LastUpdateTimestamp *int64 `json:"LastUpdateTimestamp,omitnil,omitempty" name:"LastUpdateTimestamp"` +} + type ProducerLog struct { // 消息ID。 MsgId *string `json:"MsgId,omitnil,omitempty" name:"MsgId"` @@ -12392,6 +13335,28 @@ type PulsarNetworkAccessPointInfo struct { // 接入点类型 // 注意:此字段可能返回 null,表示取不到有效值。 AccessPointsType *string `json:"AccessPointsType,omitnil,omitempty" name:"AccessPointsType"` + + // 带宽,目前只有公网会有这个值 + // 注意:此字段可能返回 null,表示取不到有效值。 + Bandwidth *int64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"` + + // 类 + // 注意:此字段可能返回 null,表示取不到有效值。 + SecurityPolicy []*SecurityPolicy `json:"SecurityPolicy,omitnil,omitempty" name:"SecurityPolicy"` + + // 是否是标准的接入点 true是标准的 false不是标准的 + // 注意:此字段可能返回 null,表示取不到有效值。 + StandardAccessPoint *bool `json:"StandardAccessPoint,omitnil,omitempty" name:"StandardAccessPoint"` + + // 可用区信息 + // 注意:此字段可能返回 null,表示取不到有效值。 + ZoneName *string `json:"ZoneName,omitnil,omitempty" name:"ZoneName"` + + // 是否开启TLS加密 + Tls *bool `json:"Tls,omitnil,omitempty" name:"Tls"` + + // 接入点自定义域名 + CustomUrl *string `json:"CustomUrl,omitnil,omitempty" name:"CustomUrl"` } type PulsarProClusterInfo struct { @@ -12427,6 +13392,25 @@ type PulsarProClusterInfo struct { // 代表是专业版和小规格专业版的不同计费规格PULSAR.P1固定存储PULSAR.P2弹性存储 // 注意:此字段可能返回 null,表示取不到有效值。 BillingLabelVersion *string `json:"BillingLabelVersion,omitnil,omitempty" name:"BillingLabelVersion"` + + // 实例到期时间戳,毫秒级精度。 + // 注意:此字段可能返回 null,表示取不到有效值。 + ExpireTime *int64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"` + + // 是否开启自动创建主题 + // true就是开启了,false是关闭 + // 注意:此字段可能返回 null,表示取不到有效值。 + AutoCreateTopicStatus *bool `json:"AutoCreateTopicStatus,omitnil,omitempty" name:"AutoCreateTopicStatus"` + + // 自动创建主题的默认分区数,如果没开启就是0 + // 注意:此字段可能返回 null,表示取不到有效值。 + DefaultPartitionNumber *int64 `json:"DefaultPartitionNumber,omitnil,omitempty" name:"DefaultPartitionNumber"` + + // 用户自定义的租户别名,如果没有,会复用专业集群 ID + Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"` + + // 删除保护开关标识 + DeleteProtection *int64 `json:"DeleteProtection,omitnil,omitempty" name:"DeleteProtection"` } type PulsarProClusterSpecInfo struct { @@ -12448,6 +13432,14 @@ type PulsarProClusterSpecInfo struct { // 规格外弹性TPS // 注意:此字段可能返回 null,表示取不到有效值。 ScalableTps *uint64 `json:"ScalableTps,omitnil,omitempty" name:"ScalableTps"` + + // 32或者128 + // 当前集群topic的最大分区数 + // 注意:此字段可能返回 null,表示取不到有效值。 + MaxPartitions *uint64 `json:"MaxPartitions,omitnil,omitempty" name:"MaxPartitions"` + + // 商品最大延迟消息数量。0代表没有限制 + MaxDelayedMessages *int64 `json:"MaxDelayedMessages,omitnil,omitempty" name:"MaxDelayedMessages"` } type PulsarProInstance struct { @@ -12514,6 +13506,12 @@ type PulsarProInstance struct { // 代表是专业版和小规格专业版的不同计费规格PULSAR.P1固定存储PULSAR.P2弹性存储 // 注意:此字段可能返回 null,表示取不到有效值。 BillingLabelVersion *string `json:"BillingLabelVersion,omitnil,omitempty" name:"BillingLabelVersion"` + + // 自定义租户 + Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"` + + // 集群的证书列表 + CertificateList []*CertificateInfo `json:"CertificateList,omitnil,omitempty" name:"CertificateList"` } type QueueQuota struct { @@ -12521,10 +13519,44 @@ type QueueQuota struct { MaxQueue *int64 `json:"MaxQueue,omitnil,omitempty" name:"MaxQueue"` // 已创建Queue数 - // 注意:此字段可能返回 null,表示取不到有效值。 UsedQueue *int64 `json:"UsedQueue,omitnil,omitempty" name:"UsedQueue"` } +type RabbitMQBindingListInfo struct { + // 路由关系id + BindingId *int64 `json:"BindingId,omitnil,omitempty" name:"BindingId"` + + // VhostName + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 源exchange名称 + Source *string `json:"Source,omitnil,omitempty" name:"Source"` + + // 目标类型,queue或exchange + DestinationType *string `json:"DestinationType,omitnil,omitempty" name:"DestinationType"` + + // 目标资源名称 + Destination *string `json:"Destination,omitnil,omitempty" name:"Destination"` + + // 绑定key + RoutingKey *string `json:"RoutingKey,omitnil,omitempty" name:"RoutingKey"` + + // 源exchange类型 + SourceExchangeType *string `json:"SourceExchangeType,omitnil,omitempty" name:"SourceExchangeType"` + + // 创建时间 + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` + + // 修改时间 + ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"` + + // 创建时间时间戳 + CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"` + + // 修改时间时间戳 + ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"` +} + type RabbitMQClusterAccessInfo struct { // 集群公网接入地址 // 注意:此字段可能返回 null,表示取不到有效值。 @@ -12552,30 +13584,30 @@ type RabbitMQClusterAccessInfo struct { VpcWebConsoleEndpoint *string `json:"VpcWebConsoleEndpoint,omitnil,omitempty" name:"VpcWebConsoleEndpoint"` // 公网管控台开关状态,示例值,OFF/ON/CREATING/DELETING - // 注意:此字段可能返回 null,表示取不到有效值。 PublicWebConsoleSwitchStatus *string `json:"PublicWebConsoleSwitchStatus,omitnil,omitempty" name:"PublicWebConsoleSwitchStatus"` // Vpc管控台开关状态,示例值, // OFF/ON/CREATING/DELETING - // 注意:此字段可能返回 null,表示取不到有效值。 VpcWebConsoleSwitchStatus *string `json:"VpcWebConsoleSwitchStatus,omitnil,omitempty" name:"VpcWebConsoleSwitchStatus"` // 公网管控台开关状态,示例值,OFF/ON/CREATING/DELETING - // 注意:此字段可能返回 null,表示取不到有效值。 PublicDataStreamStatus *string `json:"PublicDataStreamStatus,omitnil,omitempty" name:"PublicDataStreamStatus"` // Prometheus信息 - // 注意:此字段可能返回 null,表示取不到有效值。 PrometheusEndpointInfo *PrometheusEndpointInfo `json:"PrometheusEndpointInfo,omitnil,omitempty" name:"PrometheusEndpointInfo"` - // http://amqp-k3eb47gm.dashboard.rabbitmq.cq.public.tencenttdmq.com:15672/ // 公网域名接入点 - // 注意:此字段可能返回 null,表示取不到有效值。 WebConsoleDomainEndpoint *string `json:"WebConsoleDomainEndpoint,omitnil,omitempty" name:"WebConsoleDomainEndpoint"` + + // 控制面所使用的VPC信息 + ControlPlaneEndpointInfo *VpcEndpointInfo `json:"ControlPlaneEndpointInfo,omitnil,omitempty" name:"ControlPlaneEndpointInfo"` + + // TLS加密的数据流公网接入点 + PublicTlsAccessEndpoint *string `json:"PublicTlsAccessEndpoint,omitnil,omitempty" name:"PublicTlsAccessEndpoint"` } type RabbitMQClusterInfo struct { - // 集群ID + // 集群 ID ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` // 集群名称 @@ -12584,18 +13616,16 @@ type RabbitMQClusterInfo struct { // 地域信息 Region *string `json:"Region,omitnil,omitempty" name:"Region"` - // 创建时间,毫秒为单位 + // 创建时间,毫秒为单位。unix 时间戳 CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 集群说明信息 - // 注意:此字段可能返回 null,表示取不到有效值。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` // VPC及网络信息 Vpcs []*VpcEndpointInfo `json:"Vpcs,omitnil,omitempty" name:"Vpcs"` // 可用区信息 - // 注意:此字段可能返回 null,表示取不到有效值。 ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"` // 虚拟主机数量 @@ -12610,7 +13640,7 @@ type RabbitMQClusterInfo struct { // 堆积消息数 单位:条 MessageStackNumber *int64 `json:"MessageStackNumber,omitnil,omitempty" name:"MessageStackNumber"` - // 过期时间 + // 实例到期时间,按量付费的资源该值为 0,毫秒为单位。unix 时间戳 ExpireTime *int64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"` // Channel数量 @@ -12633,24 +13663,34 @@ type RabbitMQClusterInfo struct { ClusterStatus *int64 `json:"ClusterStatus,omitnil,omitempty" name:"ClusterStatus"` // 自动续费标记,0表示默认状态(用户未设置,即初始状态即手动续费), 1表示自动续费,2表示明确不自动续费(用户设置) - // 注意:此字段可能返回 null,表示取不到有效值。 AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"` // 是否开启镜像队列策略。1表示开启,0表示没开启。 - // 注意:此字段可能返回 null,表示取不到有效值。 MirrorQueuePolicyFlag *int64 `json:"MirrorQueuePolicyFlag,omitnil,omitempty" name:"MirrorQueuePolicyFlag"` // 每秒消费消息数 单位:条/秒 - // 注意:此字段可能返回 null,表示取不到有效值。 MessageConsumeRate *float64 `json:"MessageConsumeRate,omitnil,omitempty" name:"MessageConsumeRate"` // 集群版本信息 - // 注意:此字段可能返回 null,表示取不到有效值。 ClusterVersion *string `json:"ClusterVersion,omitnil,omitempty" name:"ClusterVersion"` // 计费模式,0-后付费,1-预付费 - // 注意:此字段可能返回 null,表示取不到有效值。 PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"` + + // 实例类型,0 专享版、1 Serverless 版 + InstanceType *uint64 `json:"InstanceType,omitnil,omitempty" name:"InstanceType"` + + // 开始隔离时间。unix 时间戳 + IsolatedTime *int64 `json:"IsolatedTime,omitnil,omitempty" name:"IsolatedTime"` + + // 是否为容器实例,默认 true + Container *bool `json:"Container,omitnil,omitempty" name:"Container"` + + // 标签列表 + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` + + // 是否已开启删除保护 + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` } type RabbitMQClusterSpecInfo struct { @@ -12675,15 +13715,12 @@ type RabbitMQClusterSpecInfo struct { type RabbitMQClusterWhiteListInfo struct { // 废弃 - // 注意:此字段可能返回 null,表示取不到有效值。 WhiteList *string `json:"WhiteList,omitnil,omitempty" name:"WhiteList"` // 公网管控台白名单 - // 注意:此字段可能返回 null,表示取不到有效值。 PublicControlConsoleWhiteList *string `json:"PublicControlConsoleWhiteList,omitnil,omitempty" name:"PublicControlConsoleWhiteList"` // 公网数据流白名单 - // 注意:此字段可能返回 null,表示取不到有效值。 PublicDataStreamWhiteList *string `json:"PublicDataStreamWhiteList,omitnil,omitempty" name:"PublicDataStreamWhiteList"` // 公网管控台白名单状态 @@ -12696,7 +13733,7 @@ type RabbitMQClusterWhiteListInfo struct { } type RabbitMQExchangeListInfo struct { - // exchange 名 + // exchange 名称 ExchangeName *string `json:"ExchangeName,omitnil,omitempty" name:"ExchangeName"` // 备注说明 @@ -12706,20 +13743,16 @@ type RabbitMQExchangeListInfo struct { // exchange 类型, 支持 "fanout","direct","topic","headers" ExchangeType *string `json:"ExchangeType,omitnil,omitempty" name:"ExchangeType"` - // VHost参数 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 交换机所属 Virtual Host 名称 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` // exchange 创建者, "system":"系统创建", "user":"用户创建" - // 注意:此字段可能返回 null,表示取不到有效值。 ExchangeCreator *string `json:"ExchangeCreator,omitnil,omitempty" name:"ExchangeCreator"` // exchange 创建时间 - // 注意:此字段可能返回 null,表示取不到有效值。 CreateTimeStamp *string `json:"CreateTimeStamp,omitnil,omitempty" name:"CreateTimeStamp"` // exchange 修改时间 - // 注意:此字段可能返回 null,表示取不到有效值。 ModTimeStamp *string `json:"ModTimeStamp,omitnil,omitempty" name:"ModTimeStamp"` // 输入消息速率 @@ -12731,19 +13764,15 @@ type RabbitMQExchangeListInfo struct { MessageRateOut *float64 `json:"MessageRateOut,omitnil,omitempty" name:"MessageRateOut"` // 是否为持久化交换机,true 为持久化,false 为非持久化 - // 注意:此字段可能返回 null,表示取不到有效值。 Durable *bool `json:"Durable,omitnil,omitempty" name:"Durable"` // 是否为自动删除交换机,true 为自动删除,false 为非自动删除 - // 注意:此字段可能返回 null,表示取不到有效值。 AutoDelete *bool `json:"AutoDelete,omitnil,omitempty" name:"AutoDelete"` // 是否为内部交换机,true 为内部交换机 - // 注意:此字段可能返回 null,表示取不到有效值。 Internal *bool `json:"Internal,omitnil,omitempty" name:"Internal"` // 交换机所属实例 ID - // 注意:此字段可能返回 null,表示取不到有效值。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 生效的策略名称 @@ -12751,12 +13780,49 @@ type RabbitMQExchangeListInfo struct { Policy *string `json:"Policy,omitnil,omitempty" name:"Policy"` // 扩展参数 key-value 对象 - // 注意:此字段可能返回 null,表示取不到有效值。 Arguments *string `json:"Arguments,omitnil,omitempty" name:"Arguments"` // 未调度的延时消息数量 // 注意:此字段可能返回 null,表示取不到有效值。 MessagesDelayed *uint64 `json:"MessagesDelayed,omitnil,omitempty" name:"MessagesDelayed"` + + // 创建时间时间戳 + CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"` + + // 修改时间时间戳 + ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"` +} + +type RabbitMQPermission struct { + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 用户名,形如 admin。有效的 User 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,点击集群列表中的集群,进入集群详情,并在用户与权限页签中找到用户列表,从而找到用户名称。 + User *string `json:"User,omitnil,omitempty" name:"User"` + + // VirtualHost 名称,形如 testvhost。有效的 VirtualHost 名称可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询,在左侧导航栏点击 Vhost,并在 Vhost 列表中找到 Vhost 名称。 + VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` + + // 权限类型,declare相关操作,该用户可操作该vhost下的资源名称正则表达式 + ConfigRegexp *string `json:"ConfigRegexp,omitnil,omitempty" name:"ConfigRegexp"` + + // 权限类型,消息写入相关操作,该用户可操作该vhost下的资源名称正则表达式 + WriteRegexp *string `json:"WriteRegexp,omitnil,omitempty" name:"WriteRegexp"` + + // 权限类型,消息读取相关操作,该用户可操作该vhost下的资源名称正则表达式 + ReadRegexp *string `json:"ReadRegexp,omitnil,omitempty" name:"ReadRegexp"` + + // 创建时间 + CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` + + // 修改时间 + ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"` + + // 创建时间时间戳 + CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"` + + // 修改时间时间戳 + ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"` } type RabbitMQPrivateNode struct { @@ -12764,7 +13830,7 @@ type RabbitMQPrivateNode struct { // 注意:此字段可能返回 null,表示取不到有效值。 NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"` - // 节点状态 + // 节点状态,running 运行中,down 异常 // 注意:此字段可能返回 null,表示取不到有效值。 NodeStatus *string `json:"NodeStatus,omitnil,omitempty" name:"NodeStatus"` @@ -12785,16 +13851,6 @@ type RabbitMQPrivateNode struct { ProcessNumber *uint64 `json:"ProcessNumber,omitnil,omitempty" name:"ProcessNumber"` } -type RabbitMQPrivateVirtualHost struct { - // 虚拟主机的名字 - // 注意:此字段可能返回 null,表示取不到有效值。 - VirtualHostName *string `json:"VirtualHostName,omitnil,omitempty" name:"VirtualHostName"` - - // 虚拟主机的描述 - // 注意:此字段可能返回 null,表示取不到有效值。 - Description *string `json:"Description,omitnil,omitempty" name:"Description"` -} - type RabbitMQQueueListConsumerDetailInfo struct { // 消费者数量 // 注意:此字段可能返回 null,表示取不到有效值。 @@ -12810,11 +13866,9 @@ type RabbitMQQueueListInfo struct { Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` // 消费者信息 - // 注意:此字段可能返回 null,表示取不到有效值。 ConsumerDetail *RabbitMQQueueListConsumerDetailInfo `json:"ConsumerDetail,omitnil,omitempty" name:"ConsumerDetail"` // 队列类型,取值 "classic","quorum" - // 注意:此字段可能返回 null,表示取不到有效值。 QueueType *string `json:"QueueType,omitnil,omitempty" name:"QueueType"` // 消息堆积数 @@ -12830,31 +13884,24 @@ type RabbitMQQueueListInfo struct { MessageRateOut *float64 `json:"MessageRateOut,omitnil,omitempty" name:"MessageRateOut"` // 创建时间 - // 注意:此字段可能返回 null,表示取不到有效值。 CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 修改时间 - // 注意:此字段可能返回 null,表示取不到有效值。 ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"` // 队列是否持久化,true 为持久化,false 为非持久化 - // 注意:此字段可能返回 null,表示取不到有效值。 Durable *bool `json:"Durable,omitnil,omitempty" name:"Durable"` // 队列是否为自动删除队列,true 为自动删除,false 为非自动删除 - // 注意:此字段可能返回 null,表示取不到有效值。 AutoDelete *bool `json:"AutoDelete,omitnil,omitempty" name:"AutoDelete"` // 队列所属实例 ID - // 注意:此字段可能返回 null,表示取不到有效值。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 队列所属虚拟主机名称 - // 注意:此字段可能返回 null,表示取不到有效值。 VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` // 队列所在主节点名称 - // 注意:此字段可能返回 null,表示取不到有效值。 Node *string `json:"Node,omitnil,omitempty" name:"Node"` // 生效的策略名称 @@ -12862,16 +13909,20 @@ type RabbitMQQueueListInfo struct { Policy *string `json:"Policy,omitnil,omitempty" name:"Policy"` // 扩展参数 key-value 对象 - // 注意:此字段可能返回 null,表示取不到有效值。 Arguments *string `json:"Arguments,omitnil,omitempty" name:"Arguments"` // 是否独占队列 - // 注意:此字段可能返回 null,表示取不到有效值。 Exclusive *bool `json:"Exclusive,omitnil,omitempty" name:"Exclusive"` + + // 创建时间时间戳 + CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"` + + // 修改时间时间戳 + ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"` } type RabbitMQUser struct { - // 集群实例Id + // 实例 ID,形如 amqp-xxxxxxxx。有效的 InstanceId 可通过登录 [TDMQ RabbitMQ 控制台](https://console.cloud.tencent.com/trabbitmq/cluster?rid=1)查询。 InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 用户名,登录时使用 @@ -12881,11 +13932,9 @@ type RabbitMQUser struct { Password *string `json:"Password,omitnil,omitempty" name:"Password"` // 用户描述 - // 注意:此字段可能返回 null,表示取不到有效值。 Description *string `json:"Description,omitnil,omitempty" name:"Description"` // 用户标签,用于决定改用户访问RabbitMQ Management的权限范围 - // 注意:此字段可能返回 null,表示取不到有效值。 Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"` // 用户创建时间 @@ -12904,17 +13953,30 @@ type RabbitMQUser struct { // 单个用户最大可用通道数 // 注意:此字段可能返回 null,表示取不到有效值。 MaxChannels *int64 `json:"MaxChannels,omitnil,omitempty" name:"MaxChannels"` + + // 创建时间时间戳 + CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"` + + // 修改时间时间戳 + ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"` +} + +type RabbitMQUserQuota struct { + // 最大可创建用户数 + MaxUser *int64 `json:"MaxUser,omitnil,omitempty" name:"MaxUser"` + + // 已使用用户数 + UsedUser *int64 `json:"UsedUser,omitnil,omitempty" name:"UsedUser"` } type RabbitMQVipInstance struct { - // 实例id + // 实例 ID InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` // 实例名称 InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"` // 实例版本 - // 注意:此字段可能返回 null,表示取不到有效值。 InstanceVersion *string `json:"InstanceVersion,omitnil,omitempty" name:"InstanceVersion"` // 实例状态,0表示创建中,1表示正常,2表示隔离中,3表示已销毁,4 - 异常, 5 - 发货失败 @@ -12935,23 +13997,31 @@ type RabbitMQVipInstance struct { // 存储容量,GB为单位 MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"` - // 实例到期时间,毫秒为单位 + // 实例到期时间,按量付费的资源该值为 0,毫秒为单位。unix 时间戳 ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"` // 自动续费标记,0表示默认状态(用户未设置,即初始状态即手动续费), 1表示自动续费,2表示明确不自动续费(用户设置) AutoRenewFlag *uint64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"` - // 0-后付费,1-预付费 + // 1 表示预付费,0 表示后付费 PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"` // 备注信息 - // 注意:此字段可能返回 null,表示取不到有效值。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` - // 实例配置ID + // 集群的节点规格,需要输入对应的规格标识: + // 2C8G:rabbit-vip-basic-2c8g + // 4C16G:rabbit-vip-basic-4c16g + // 8C32G:rabbit-vip-basic-8c32g + // 16C32G:rabbit-vip-basic-4 + // 16C64G:rabbit-vip-basic-16c64g + // 2C4G:rabbit-vip-basic-5 + // 4C8G:rabbit-vip-basic-1 + // 8C16G(已售罄):rabbit-vip-basic-2 + // 不传默认为4C8G:rabbit-vip-basic-1 SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"` - // 集群异常。 + // 集群异常信息 // 注意:此字段可能返回 null,表示取不到有效值。 ExceptionInformation *string `json:"ExceptionInformation,omitnil,omitempty" name:"ExceptionInformation"` @@ -12964,12 +14034,22 @@ type RabbitMQVipInstance struct { PublicAccessEndpoint *string `json:"PublicAccessEndpoint,omitnil,omitempty" name:"PublicAccessEndpoint"` // VPC 接入点列表 - // 注意:此字段可能返回 null,表示取不到有效值。 Vpcs []*VpcEndpointInfo `json:"Vpcs,omitnil,omitempty" name:"Vpcs"` - // 创建时间,毫秒为单位 - // 注意:此字段可能返回 null,表示取不到有效值。 + // 创建时间,毫秒为单位。unix 时间戳 CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` + + // 实例类型,0 托管版、1 Serverless 版 + InstanceType *uint64 `json:"InstanceType,omitnil,omitempty" name:"InstanceType"` + + // 隔离时间,毫秒为单位。unix 时间戳 + IsolatedTime *uint64 `json:"IsolatedTime,omitnil,omitempty" name:"IsolatedTime"` + + // 是否已开启删除保护 + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` + + // 标签列表 + Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"` } type RabbitMQVirtualHostInfo struct { @@ -12980,48 +14060,43 @@ type RabbitMQVirtualHostInfo struct { VirtualHost *string `json:"VirtualHost,omitnil,omitempty" name:"VirtualHost"` // vhost描述信息 - // 注意:此字段可能返回 null,表示取不到有效值。 Description *string `json:"Description,omitnil,omitempty" name:"Description"` // vhost标签 - // 注意:此字段可能返回 null,表示取不到有效值。 Tags []*string `json:"Tags,omitnil,omitempty" name:"Tags"` // 创建时间 - // 注意:此字段可能返回 null,表示取不到有效值。 CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"` // 修改时间 - // 注意:此字段可能返回 null,表示取不到有效值。 ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"` // vhost概览统计信息 - // 注意:此字段可能返回 null,表示取不到有效值。 VirtualHostStatistics *RabbitMQVirtualHostStatistics `json:"VirtualHostStatistics,omitnil,omitempty" name:"VirtualHostStatistics"` // 消息轨迹开关,true打开,false关闭 - // 注意:此字段可能返回 null,表示取不到有效值。 TraceFlag *bool `json:"TraceFlag,omitnil,omitempty" name:"TraceFlag"` // vhost状态,与原生控制台对应,有running、partial、stopped、unknown - // 注意:此字段可能返回 null,表示取不到有效值。 Status *string `json:"Status,omitnil,omitempty" name:"Status"` // 消息堆积数 - // 注意:此字段可能返回 null,表示取不到有效值。 MessageHeapCount *int64 `json:"MessageHeapCount,omitnil,omitempty" name:"MessageHeapCount"` // 输入消息速率 - // 注意:此字段可能返回 null,表示取不到有效值。 MessageRateIn *float64 `json:"MessageRateIn,omitnil,omitempty" name:"MessageRateIn"` // 输出消息速率 - // 注意:此字段可能返回 null,表示取不到有效值。 MessageRateOut *float64 `json:"MessageRateOut,omitnil,omitempty" name:"MessageRateOut"` // 是否存在镜像队列策略,true 为存在,false 为不存 - // 注意:此字段可能返回 null,表示取不到有效值。 MirrorQueuePolicyFlag *bool `json:"MirrorQueuePolicyFlag,omitnil,omitempty" name:"MirrorQueuePolicyFlag"` + + // 创建时间时间戳 + CreateTs *uint64 `json:"CreateTs,omitnil,omitempty" name:"CreateTs"` + + // 修改时间时间戳 + ModifyTs *uint64 `json:"ModifyTs,omitnil,omitempty" name:"ModifyTs"` } type RabbitMQVirtualHostStatistics struct { @@ -13127,19 +14202,15 @@ type ReceiveMessageResponseParams struct { AckTopic *string `json:"AckTopic,omitnil,omitempty" name:"AckTopic"` // 返回的错误信息,如果为空,说明没有错误 - // 注意:此字段可能返回 null,表示取不到有效值。 ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"` // 返回订阅者的名字,用来创建 ack consumer时使用 - // 注意:此字段可能返回 null,表示取不到有效值。 SubName *string `json:"SubName,omitnil,omitempty" name:"SubName"` // BatchReceivePolicy 一次性返回的多条消息的 MessageID,用 ‘###’ 来区分不同的 MessageID - // 注意:此字段可能返回 null,表示取不到有效值。 MessageIDList *string `json:"MessageIDList,omitnil,omitempty" name:"MessageIDList"` // BatchReceivePolicy 一次性返回的多条消息的消息内容,用 ‘###’ 来区分不同的消息内容 - // 注意:此字段可能返回 null,表示取不到有效值。 MessagesPayload *string `json:"MessagesPayload,omitnil,omitempty" name:"MessagesPayload"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -13259,14 +14330,17 @@ type ResetRocketMQConsumerOffSetRequestParams struct { // 消费组名称 GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"` - // 主题名称 - Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` - // 重置方式,0表示从最新位点开始,1表示从指定时间点开始 Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"` + // 主题名称 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` + // 重置指定的时间戳,仅在 Type 为1是生效,以毫秒为单位 ResetTimestamp *uint64 `json:"ResetTimestamp,omitnil,omitempty" name:"ResetTimestamp"` + + // 重置的是否是retry topic + RetryFlag *bool `json:"RetryFlag,omitnil,omitempty" name:"RetryFlag"` } type ResetRocketMQConsumerOffSetRequest struct { @@ -13281,14 +14355,17 @@ type ResetRocketMQConsumerOffSetRequest struct { // 消费组名称 GroupId *string `json:"GroupId,omitnil,omitempty" name:"GroupId"` - // 主题名称 - Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` - // 重置方式,0表示从最新位点开始,1表示从指定时间点开始 Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"` + // 主题名称 + Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` + // 重置指定的时间戳,仅在 Type 为1是生效,以毫秒为单位 ResetTimestamp *uint64 `json:"ResetTimestamp,omitnil,omitempty" name:"ResetTimestamp"` + + // 重置的是否是retry topic + RetryFlag *bool `json:"RetryFlag,omitnil,omitempty" name:"RetryFlag"` } func (r *ResetRocketMQConsumerOffSetRequest) ToJsonString() string { @@ -13306,9 +14383,10 @@ func (r *ResetRocketMQConsumerOffSetRequest) FromJsonString(s string) error { delete(f, "ClusterId") delete(f, "NamespaceId") delete(f, "GroupId") - delete(f, "Topic") delete(f, "Type") + delete(f, "Topic") delete(f, "ResetTimestamp") + delete(f, "RetryFlag") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResetRocketMQConsumerOffSetRequest has unknown keys!", "") } @@ -13345,6 +14423,81 @@ type RetentionPolicy struct { SizeInMB *int64 `json:"SizeInMB,omitnil,omitempty" name:"SizeInMB"` } +// Predefined struct for user +type RetryRocketMQDlqMessageRequestParams struct { + // 集群id + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 命名空间名称 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` + + // group名称 + GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"` + + // 死信消息ID + MessageIds []*string `json:"MessageIds,omitnil,omitempty" name:"MessageIds"` +} + +type RetryRocketMQDlqMessageRequest struct { + *tchttp.BaseRequest + + // 集群id + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 命名空间名称 + NamespaceId *string `json:"NamespaceId,omitnil,omitempty" name:"NamespaceId"` + + // group名称 + GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"` + + // 死信消息ID + MessageIds []*string `json:"MessageIds,omitnil,omitempty" name:"MessageIds"` +} + +func (r *RetryRocketMQDlqMessageRequest) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *RetryRocketMQDlqMessageRequest) FromJsonString(s string) error { + f := make(map[string]interface{}) + if err := json.Unmarshal([]byte(s), &f); err != nil { + return err + } + delete(f, "ClusterId") + delete(f, "NamespaceId") + delete(f, "GroupName") + delete(f, "MessageIds") + if len(f) > 0 { + return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RetryRocketMQDlqMessageRequest has unknown keys!", "") + } + return json.Unmarshal([]byte(s), &r) +} + +// Predefined struct for user +type RetryRocketMQDlqMessageResponseParams struct { + // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 + RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"` +} + +type RetryRocketMQDlqMessageResponse struct { + *tchttp.BaseResponse + Response *RetryRocketMQDlqMessageResponseParams `json:"Response"` +} + +func (r *RetryRocketMQDlqMessageResponse) ToJsonString() string { + b, _ := json.Marshal(r) + return string(b) +} + +// FromJsonString It is highly **NOT** recommended to use this function +// because it has no param check, nor strict type check +func (r *RetryRocketMQDlqMessageResponse) FromJsonString(s string) error { + return json.Unmarshal([]byte(s), &r) +} + // Predefined struct for user type RewindCmqQueueRequestParams struct { // 队列名字,在单个地域同一账号下唯一。队列名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 @@ -13407,7 +14560,9 @@ func (r *RewindCmqQueueResponse) FromJsonString(s string) error { } type RocketMQClusterConfig struct { - // 单命名空间TPS上线 + // 单命名空间TPS上限 + // + // Deprecated: MaxTpsPerNamespace is deprecated. MaxTpsPerNamespace *uint64 `json:"MaxTpsPerNamespace,omitnil,omitempty" name:"MaxTpsPerNamespace"` // 最大命名空间数量 @@ -13441,6 +14596,12 @@ type RocketMQClusterConfig struct { // topic分布 // 注意:此字段可能返回 null,表示取不到有效值。 TopicDistribution []*RocketMQTopicDistribution `json:"TopicDistribution,omitnil,omitempty" name:"TopicDistribution"` + + // 最大角色数量 + MaxRoleNum *int64 `json:"MaxRoleNum,omitnil,omitempty" name:"MaxRoleNum"` + + // TPS限额 + MaxTpsLimit *int64 `json:"MaxTpsLimit,omitnil,omitempty" name:"MaxTpsLimit"` } type RocketMQClusterDetail struct { @@ -13549,6 +14710,26 @@ type RocketMQClusterInfo struct { // 集群节点所在的可用区,若该集群为跨可用区集群,则包含该集群节点所在的多个可用区。 // 注意:此字段可能返回 null,表示取不到有效值。 ZoneIds []*int64 `json:"ZoneIds,omitnil,omitempty" name:"ZoneIds"` + + // 是否已冻结 + IsFrozen *bool `json:"IsFrozen,omitnil,omitempty" name:"IsFrozen"` + + // 是否开启自动创建主题 + AutoCreateTopicEnabled *bool `json:"AutoCreateTopicEnabled,omitnil,omitempty" name:"AutoCreateTopicEnabled"` + + // 是否开启集群Admin能力 + AdminFeatureEnabled *bool `json:"AdminFeatureEnabled,omitnil,omitempty" name:"AdminFeatureEnabled"` + + // Admin AK + // 注意:此字段可能返回 null,表示取不到有效值。 + AdminAccessKey *string `json:"AdminAccessKey,omitnil,omitempty" name:"AdminAccessKey"` + + // Admin SK + // 注意:此字段可能返回 null,表示取不到有效值。 + AdminSecretKey *string `json:"AdminSecretKey,omitnil,omitempty" name:"AdminSecretKey"` + + // 是否开启删除保护 + EnableDeletionProtection *bool `json:"EnableDeletionProtection,omitnil,omitempty" name:"EnableDeletionProtection"` } type RocketMQClusterRecentStats struct { @@ -13586,7 +14767,7 @@ type RocketMQConsumerTopic struct { // 主题名称 Topic *string `json:"Topic,omitnil,omitempty" name:"Topic"` - // 主题类型,Default表示普通,GlobalOrder表示全局顺序,PartitionedOrder表示局部顺序,Transaction表示事务,Retry表示重试,DeadLetter表示死信 + // 主题类型,Normal表示普通,GlobalOrder表示全局顺序,PartitionedOrder表示局部顺序,Transaction表示事务,Retry表示重试,DeadLetter表示死信 Type *string `json:"Type,omitnil,omitempty" name:"Type"` // 分区数 @@ -13621,9 +14802,13 @@ type RocketMQGroup struct { ConsumerNum *uint64 `json:"ConsumerNum,omitnil,omitempty" name:"ConsumerNum"` // 消费TPS + // + // Deprecated: TPS is deprecated. TPS *uint64 `json:"TPS,omitnil,omitempty" name:"TPS"` // 总堆积数量 + // + // Deprecated: TotalAccumulative is deprecated. TotalAccumulative *int64 `json:"TotalAccumulative,omitnil,omitempty" name:"TotalAccumulative"` // 0表示集群消费模式,1表示广播消费模式,-1表示未知 @@ -13663,6 +14848,17 @@ type RocketMQGroup struct { // 重试次数 // 注意:此字段可能返回 null,表示取不到有效值。 RetryMaxTimes *uint64 `json:"RetryMaxTimes,omitnil,omitempty" name:"RetryMaxTimes"` + + // 实例ID + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 命名空间 + // 注意:此字段可能返回 null,表示取不到有效值。 + Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"` + + // 订阅的主题个数 + SubscribeTopicNum *int64 `json:"SubscribeTopicNum,omitnil,omitempty" name:"SubscribeTopicNum"` } type RocketMQGroupConfig struct { @@ -13696,7 +14892,7 @@ type RocketMQGroupConfigOutput struct { // 注意:此字段可能返回 null,表示取不到有效值。 GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"` - // 导入状态 + // 是否已导入 // 注意:此字段可能返回 null,表示取不到有效值。 Imported *bool `json:"Imported,omitnil,omitempty" name:"Imported"` @@ -13943,6 +15139,8 @@ type RocketMQSubscription struct { IsOnline *bool `json:"IsOnline,omitnil,omitempty" name:"IsOnline"` // 消费类型 + // 0: 广播消费 + // 1: 集群消费 // 注意:此字段可能返回 null,表示取不到有效值。 ConsumeType *int64 `json:"ConsumeType,omitnil,omitempty" name:"ConsumeType"` @@ -13961,6 +15159,10 @@ type RocketMQSubscription struct { // 协议类型 // 注意:此字段可能返回 null,表示取不到有效值。 ClientProtocol *string `json:"ClientProtocol,omitnil,omitempty" name:"ClientProtocol"` + + // 客户端订阅详情 + // 注意:此字段可能返回 null,表示取不到有效值。 + ClientSubscriptionInfos []*ClientSubscriptionInfo `json:"ClientSubscriptionInfos,omitnil,omitempty" name:"ClientSubscriptionInfos"` } type RocketMQTopic struct { @@ -13986,6 +15188,14 @@ type RocketMQTopic struct { // 创建时间,以毫秒为单位 UpdateTime *uint64 `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"` + // 实例ID + // 注意:此字段可能返回 null,表示取不到有效值。 + InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"` + + // 命名空间 + // 注意:此字段可能返回 null,表示取不到有效值。 + Namespace *string `json:"Namespace,omitnil,omitempty" name:"Namespace"` + // 最后写入时间,单位为秒 // 注意:此字段可能返回 null,表示取不到有效值。 LastUpdateTime *int64 `json:"LastUpdateTime,omitnil,omitempty" name:"LastUpdateTime"` @@ -14067,7 +15277,6 @@ type RocketMQVipInstance struct { InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"` // 实例版本 - // 注意:此字段可能返回 null,表示取不到有效值。 InstanceVersion *string `json:"InstanceVersion,omitnil,omitempty" name:"InstanceVersion"` // 实例状态,0表示创建中,1表示正常,2表示隔离中,3表示已销毁,4 - 异常, 5 - 发货失败,6 - 变配中,7 - 变配失败 @@ -14098,30 +15307,24 @@ type RocketMQVipInstance struct { PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"` // 备注信息 - // 注意:此字段可能返回 null,表示取不到有效值。 Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` // 实例配置ID SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"` // 最大可设置消息保留时间,小时为单位 - // 注意:此字段可能返回 null,表示取不到有效值。 MaxRetention *int64 `json:"MaxRetention,omitnil,omitempty" name:"MaxRetention"` // 最小可设置消息保留时间,小时为单位 - // 注意:此字段可能返回 null,表示取不到有效值。 MinRetention *int64 `json:"MinRetention,omitnil,omitempty" name:"MinRetention"` // 实例消息保留时间,小时为单位 - // 注意:此字段可能返回 null,表示取不到有效值。 Retention *int64 `json:"Retention,omitnil,omitempty" name:"Retention"` // 是否开启ACL鉴权 - // 注意:此字段可能返回 null,表示取不到有效值。 AclEnabled *bool `json:"AclEnabled,omitnil,omitempty" name:"AclEnabled"` // 销毁时间 - // 注意:此字段可能返回 null,表示取不到有效值。 DestroyTime *uint64 `json:"DestroyTime,omitnil,omitempty" name:"DestroyTime"` } @@ -14140,6 +15343,24 @@ type Role struct { // 更新时间。 UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"` + + // 授权类型(Cluster:集群;TopicAndGroup:主题或消费组) + PermType *string `json:"PermType,omitnil,omitempty" name:"PermType"` +} + +type SecurityPolicy struct { + // ip或者网段 + // 注意:此字段可能返回 null,表示取不到有效值。 + Route *string `json:"Route,omitnil,omitempty" name:"Route"` + + // 策略 true就是允许,白名单或者 false 拒绝 黑名单 + // + // 注意:此字段可能返回 null,表示取不到有效值。 + Policy *bool `json:"Policy,omitnil,omitempty" name:"Policy"` + + // 备注 + // 注意:此字段可能返回 null,表示取不到有效值。 + Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"` } // Predefined struct for user @@ -14406,11 +15627,9 @@ func (r *SendMessagesRequest) FromJsonString(s string) error { // Predefined struct for user type SendMessagesResponseParams struct { // 消息的messageID, 是全局唯一的,用来标识消息的元数据信息 - // 注意:此字段可能返回 null,表示取不到有效值。 MessageId *string `json:"MessageId,omitnil,omitempty" name:"MessageId"` // 返回的错误消息,如果返回为 “”,说明没有错误 - // 注意:此字段可能返回 null,表示取不到有效值。 ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"` // 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 @@ -14628,6 +15847,9 @@ type SetRocketMQPublicAccessPointRequestParams struct { // 公网访问安全规则列表,Enabled为true时必须传入 Rules []*PublicAccessRule `json:"Rules,omitnil,omitempty" name:"Rules"` + + // 公网是否按流量计费 + BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"` } type SetRocketMQPublicAccessPointRequest struct { @@ -14647,6 +15869,9 @@ type SetRocketMQPublicAccessPointRequest struct { // 公网访问安全规则列表,Enabled为true时必须传入 Rules []*PublicAccessRule `json:"Rules,omitnil,omitempty" name:"Rules"` + + // 公网是否按流量计费 + BillingFlow *bool `json:"BillingFlow,omitnil,omitempty" name:"BillingFlow"` } func (r *SetRocketMQPublicAccessPointRequest) ToJsonString() string { @@ -14666,6 +15891,7 @@ func (r *SetRocketMQPublicAccessPointRequest) FromJsonString(s string) error { delete(f, "Bandwidth") delete(f, "PayMode") delete(f, "Rules") + delete(f, "BillingFlow") if len(f) > 0 { return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SetRocketMQPublicAccessPointRequest has unknown keys!", "") } @@ -14905,6 +16131,18 @@ type Topic struct { // // 注意:此字段可能返回 null,表示取不到有效值。 MsgTTL *uint64 `json:"MsgTTL,omitnil,omitempty" name:"MsgTTL"` + + // 集群 ID + ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"` + + // 用户自定义的租户别名,如果没有,会复用专业集群 ID + Tenant *string `json:"Tenant,omitnil,omitempty" name:"Tenant"` + + // 是否开启异常消费者隔离 + IsolateConsumerEnable *bool `json:"IsolateConsumerEnable,omitnil,omitempty" name:"IsolateConsumerEnable"` + + // 消费者 Ack 超时时间,单位:秒 + AckTimeOut *int64 `json:"AckTimeOut,omitnil,omitempty" name:"AckTimeOut"` } type TopicRecord struct { @@ -14915,6 +16153,45 @@ type TopicRecord struct { TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` } +type TopicStats struct { + // 所属Broker节点 + // 注意:此字段可能返回 null,表示取不到有效值。 + BrokerName *string `json:"BrokerName,omitnil,omitempty" name:"BrokerName"` + + // 队列编号 + // 注意:此字段可能返回 null,表示取不到有效值。 + QueueId *int64 `json:"QueueId,omitnil,omitempty" name:"QueueId"` + + // 最小位点 + // 注意:此字段可能返回 null,表示取不到有效值。 + MinOffset *int64 `json:"MinOffset,omitnil,omitempty" name:"MinOffset"` + + // 最大位点 + // 注意:此字段可能返回 null,表示取不到有效值。 + MaxOffset *int64 `json:"MaxOffset,omitnil,omitempty" name:"MaxOffset"` + + // 消息条数 + // 注意:此字段可能返回 null,表示取不到有效值。 + MessageCount *int64 `json:"MessageCount,omitnil,omitempty" name:"MessageCount"` + + // 消息最后写入时间 + // 注意:此字段可能返回 null,表示取不到有效值。 + LastUpdateTimestamp *int64 `json:"LastUpdateTimestamp,omitnil,omitempty" name:"LastUpdateTimestamp"` +} + +type Topic_Simplification struct { + // 主题名称。 + // 注意:此字段可能返回 null,表示取不到有效值。 + TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` + + // 0: 非持久非分区 + // 1: 非持久分区 + // 2: 持久非分区 + // 3: 持久分区 + // 注意:此字段可能返回 null,表示取不到有效值。 + PulsarTopicType *int64 `json:"PulsarTopicType,omitnil,omitempty" name:"PulsarTopicType"` +} + type TraceResult struct { // 阶段 Stage *string `json:"Stage,omitnil,omitempty" name:"Stage"` @@ -14994,7 +16271,7 @@ type VerifyRocketMQConsumeRequestParams struct { // 客户端ID ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"` - // topic名称 + // 主题名称 TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` } @@ -15016,7 +16293,7 @@ type VerifyRocketMQConsumeRequest struct { // 客户端ID ClientId *string `json:"ClientId,omitnil,omitempty" name:"ClientId"` - // topic名称 + // 主题名称 TopicName *string `json:"TopicName,omitnil,omitempty" name:"TopicName"` } @@ -15071,8 +16348,16 @@ type VirtualHostQuota struct { MaxVirtualHost *int64 `json:"MaxVirtualHost,omitnil,omitempty" name:"MaxVirtualHost"` // 已创建vhost数 - // 注意:此字段可能返回 null,表示取不到有效值。 UsedVirtualHost *int64 `json:"UsedVirtualHost,omitnil,omitempty" name:"UsedVirtualHost"` + + // 单个 vhost 下允许的最大连接数 + MaxConnectionPerVhost *int64 `json:"MaxConnectionPerVhost,omitnil,omitempty" name:"MaxConnectionPerVhost"` + + // 单个 vhost 下允许的最大交换机数 + MaxExchangePerVhost *int64 `json:"MaxExchangePerVhost,omitnil,omitempty" name:"MaxExchangePerVhost"` + + // 单个 vhost 下允许的最大队列机数 + MaxQueuePerVhost *int64 `json:"MaxQueuePerVhost,omitnil,omitempty" name:"MaxQueuePerVhost"` } type VpcBindRecord struct { @@ -15114,10 +16399,11 @@ type VpcEndpointInfo struct { // vpc接入点信息 VpcEndpoint *string `json:"VpcEndpoint,omitnil,omitempty" name:"VpcEndpoint"` - // vpc接入点状态 - // OFF/ON/CREATING/DELETING - // 注意:此字段可能返回 null,表示取不到有效值。 + // vpc接入点状态 OFF/ON/CREATING/DELETING VpcDataStreamEndpointStatus *string `json:"VpcDataStreamEndpointStatus,omitnil,omitempty" name:"VpcDataStreamEndpointStatus"` + + // TLS加密的数据流接入点 + VpcTlsEndpoint *string `json:"VpcTlsEndpoint,omitnil,omitempty" name:"VpcTlsEndpoint"` } type VpcInfo struct { diff --git a/vendor/modules.txt b/vendor/modules.txt index f95a4db322..5d760f1a6f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1328,7 +1328,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcss/v20201101 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg/v20211118 -# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.955 +# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.1.15 ## explicit; go 1.14 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217 # github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 diff --git a/website/docs/r/tdmq_rabbitmq_user_permission.html.markdown b/website/docs/r/tdmq_rabbitmq_user_permission.html.markdown new file mode 100644 index 0000000000..3e45f47aea --- /dev/null +++ b/website/docs/r/tdmq_rabbitmq_user_permission.html.markdown @@ -0,0 +1,82 @@ +--- +subcategory: "TDMQ for RabbitMQ(trabbit)" +layout: "tencentcloud" +page_title: "TencentCloud: tencentcloud_tdmq_rabbitmq_user_permission" +sidebar_current: "docs-tencentcloud-resource-tdmq_rabbitmq_user_permission" +description: |- + Provides a resource to create a tdmq rabbitmq_user_permission +--- + +# tencentcloud_tdmq_rabbitmq_user_permission + +Provides a resource to create a tdmq rabbitmq_user_permission + +## Example Usage + +```hcl +# create rabbitmq instance +resource "tencentcloud_tdmq_rabbitmq_vip_instance" "example" { + zone_ids = [var.availability_zone] + vpc_id = var.vpc_id + subnet_id = var.subnet_id + cluster_name = "tf-example-rabbitmq" + node_spec = "rabbit-vip-basic-1" + node_num = 1 + storage_size = 200 + enable_create_default_ha_mirror_queue = false + auto_renew_flag = true + time_span = 1 +} + +# create rabbitmq user +resource "tencentcloud_tdmq_rabbitmq_user" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = "tf-example-user" + password = "Password@123" + description = "test user" + tags = ["management"] +} + +# create virtual host +resource "tencentcloud_tdmq_rabbitmq_virtual_host" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + virtual_host = "tf-example-vhost" + description = "test virtual host" + trace_flag = false +} + +# create user permission +resource "tencentcloud_tdmq_rabbitmq_user_permission" "example" { + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = tencentcloud_tdmq_rabbitmq_user.example.user + virtual_host = tencentcloud_tdmq_rabbitmq_virtual_host.example.virtual_host + config_regexp = ".*" + write_regexp = ".*" + read_regexp = ".*" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `instance_id` - (Required, String, ForceNew) Cluster instance ID. +* `user` - (Required, String, ForceNew) Username. +* `virtual_host` - (Required, String, ForceNew) VirtualHost name. +* `config_regexp` - (Required, String) Configure permission regexp, controls which resources can be declared. +* `write_regexp` - (Required, String) Write permission regexp, controls which resources can be written. +* `read_regexp` - (Required, String) Read permission regexp, controls which resources can be read. + +## Attributes Reference + +In addition to all arguments above, the following attributes are exported: + +* `id` - ID of the resource. Format: `{instanceId}#{user}#{virtualHost}`. + +## Import + +tdmq rabbitmq_user_permission can be imported using the id, e.g. + +``` +terraform import tencentcloud_tdmq_rabbitmq_user_permission.example amqp-xxxxxxxx#user#vhost +``` From 9cbd7f0aa8394cd27abdd99ab208f768eafcba15 Mon Sep 17 00:00:00 2001 From: hellertang Date: Fri, 28 Nov 2025 17:08:06 +0800 Subject: [PATCH 2/3] add rabbitmq permission --- .changelog/3624.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3624.txt diff --git a/.changelog/3624.txt b/.changelog/3624.txt new file mode 100644 index 0000000000..20440ab534 --- /dev/null +++ b/.changelog/3624.txt @@ -0,0 +1,3 @@ +```release-note:new-resource +tencentcloud_tdmq_rabbitmq_user_permission +``` \ No newline at end of file From e79487fc5e69725637246cda766075f650d3086b Mon Sep 17 00:00:00 2001 From: hellertang Date: Fri, 28 Nov 2025 17:17:01 +0800 Subject: [PATCH 3/3] modify doc --- ...dmq_rabbitmq_user_permission.html.markdown | 21 +++++++++++-------- website/tencentcloud.erb | 3 +++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/website/docs/r/tdmq_rabbitmq_user_permission.html.markdown b/website/docs/r/tdmq_rabbitmq_user_permission.html.markdown index 3e45f47aea..d362d50e62 100644 --- a/website/docs/r/tdmq_rabbitmq_user_permission.html.markdown +++ b/website/docs/r/tdmq_rabbitmq_user_permission.html.markdown @@ -47,12 +47,12 @@ resource "tencentcloud_tdmq_rabbitmq_virtual_host" "example" { # create user permission resource "tencentcloud_tdmq_rabbitmq_user_permission" "example" { - instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id - user = tencentcloud_tdmq_rabbitmq_user.example.user - virtual_host = tencentcloud_tdmq_rabbitmq_virtual_host.example.virtual_host - config_regexp = ".*" - write_regexp = ".*" - read_regexp = ".*" + instance_id = tencentcloud_tdmq_rabbitmq_vip_instance.example.id + user = tencentcloud_tdmq_rabbitmq_user.example.user + virtual_host = tencentcloud_tdmq_rabbitmq_virtual_host.example.virtual_host + config_regexp = ".*" + write_regexp = ".*" + read_regexp = ".*" } ``` @@ -60,18 +60,20 @@ resource "tencentcloud_tdmq_rabbitmq_user_permission" "example" { The following arguments are supported: +* `config_regexp` - (Required, String) Configure permission regexp, controls which resources can be declared. * `instance_id` - (Required, String, ForceNew) Cluster instance ID. +* `read_regexp` - (Required, String) Read permission regexp, controls which resources can be read. * `user` - (Required, String, ForceNew) Username. * `virtual_host` - (Required, String, ForceNew) VirtualHost name. -* `config_regexp` - (Required, String) Configure permission regexp, controls which resources can be declared. * `write_regexp` - (Required, String) Write permission regexp, controls which resources can be written. -* `read_regexp` - (Required, String) Read permission regexp, controls which resources can be read. ## Attributes Reference In addition to all arguments above, the following attributes are exported: -* `id` - ID of the resource. Format: `{instanceId}#{user}#{virtualHost}`. +* `id` - ID of the resource. + + ## Import @@ -80,3 +82,4 @@ tdmq rabbitmq_user_permission can be imported using the id, e.g. ``` terraform import tencentcloud_tdmq_rabbitmq_user_permission.example amqp-xxxxxxxx#user#vhost ``` + diff --git a/website/tencentcloud.erb b/website/tencentcloud.erb index 89d74c323a..b25b1eb86d 100644 --- a/website/tencentcloud.erb +++ b/website/tencentcloud.erb @@ -4289,6 +4289,9 @@
  • tencentcloud_tdmq_rabbitmq_user
  • +
  • + tencentcloud_tdmq_rabbitmq_user_permission +
  • tencentcloud_tdmq_rabbitmq_vip_instance