github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/openapi/gen.server.go (about) 1 // Package openapi provides primitives to interact with the openapi HTTP API. 2 // 3 // Code generated by github.com/deepmap/oapi-codegen version v1.9.0 DO NOT EDIT. 4 package openapi 5 6 import ( 7 "bytes" 8 "compress/gzip" 9 "encoding/base64" 10 "fmt" 11 "net/http" 12 "net/url" 13 "path" 14 "strings" 15 16 "github.com/deepmap/oapi-codegen/pkg/runtime" 17 "github.com/getkin/kin-openapi/openapi3" 18 "github.com/gin-gonic/gin" 19 ) 20 21 // ServerInterface represents all server handlers. 22 type ServerInterface interface { 23 // get cluster info such as cluster id 24 // (GET /api/v1/cluster/info) 25 DMAPIGetClusterInfo(c *gin.Context) 26 // update cluster info. 27 // (PUT /api/v1/cluster/info) 28 DMAPIUpdateClusterInfo(c *gin.Context) 29 // get cluster master node list 30 // (GET /api/v1/cluster/masters) 31 DMAPIGetClusterMasterList(c *gin.Context) 32 // offline master node 33 // (DELETE /api/v1/cluster/masters/{master-name}) 34 DMAPIOfflineMasterNode(c *gin.Context, masterName string) 35 // get cluster worker node list 36 // (GET /api/v1/cluster/workers) 37 DMAPIGetClusterWorkerList(c *gin.Context) 38 // offline worker node 39 // (DELETE /api/v1/cluster/workers/{worker-name}) 40 DMAPIOfflineWorkerNode(c *gin.Context, workerName string) 41 // get doc json 42 // (GET /api/v1/dm.json) 43 GetDocJSON(c *gin.Context) 44 // get doc html 45 // (GET /api/v1/docs) 46 GetDocHTML(c *gin.Context) 47 // get data source list 48 // (GET /api/v1/sources) 49 DMAPIGetSourceList(c *gin.Context, params DMAPIGetSourceListParams) 50 // create and enable a new data source 51 // (POST /api/v1/sources) 52 DMAPICreateSource(c *gin.Context) 53 // delete a data source 54 // (DELETE /api/v1/sources/{source-name}) 55 DMAPIDeleteSource(c *gin.Context, sourceName string, params DMAPIDeleteSourceParams) 56 // get source 57 // (GET /api/v1/sources/{source-name}) 58 DMAPIGetSource(c *gin.Context, sourceName string, params DMAPIGetSourceParams) 59 // update a data source 60 // (PUT /api/v1/sources/{source-name}) 61 DMAPIUpdateSource(c *gin.Context, sourceName string) 62 // disable a data source 63 // (POST /api/v1/sources/{source-name}/disable) 64 DMAPIDisableSource(c *gin.Context, sourceName string) 65 // enable a data source 66 // (POST /api/v1/sources/{source-name}/enable) 67 DMAPIEnableSource(c *gin.Context, sourceName string) 68 // disable relay log function for the data source 69 // (POST /api/v1/sources/{source-name}/relay/disable) 70 DMAPIDisableRelay(c *gin.Context, sourceName string) 71 // enable relay log function for the data source 72 // (POST /api/v1/sources/{source-name}/relay/enable) 73 DMAPIEnableRelay(c *gin.Context, sourceName string) 74 // purge relay log 75 // (POST /api/v1/sources/{source-name}/relay/purge) 76 DMAPIPurgeRelay(c *gin.Context, sourceName string) 77 // get source schema list 78 // (GET /api/v1/sources/{source-name}/schemas) 79 DMAPIGetSourceSchemaList(c *gin.Context, sourceName string) 80 // get source table list 81 // (GET /api/v1/sources/{source-name}/schemas/{schema-name}) 82 DMAPIGetSourceTableList(c *gin.Context, sourceName string, schemaName string) 83 // get the current status of the data source 84 // (GET /api/v1/sources/{source-name}/status) 85 DMAPIGetSourceStatus(c *gin.Context, sourceName string) 86 // transfer source to a free worker 87 // (POST /api/v1/sources/{source-name}/transfer) 88 DMAPITransferSource(c *gin.Context, sourceName string) 89 // get task list 90 // (GET /api/v1/tasks) 91 DMAPIGetTaskList(c *gin.Context, params DMAPIGetTaskListParams) 92 // create a task 93 // (POST /api/v1/tasks) 94 DMAPICreateTask(c *gin.Context) 95 // Turn task into the format of a configuration file or vice versa. 96 // (POST /api/v1/tasks/converters) 97 DMAPIConvertTask(c *gin.Context) 98 // get task template list 99 // (GET /api/v1/tasks/templates) 100 DMAPIGetTaskTemplateList(c *gin.Context) 101 // create task template 102 // (POST /api/v1/tasks/templates) 103 DMAPICreateTaskTemplate(c *gin.Context) 104 // import task template 105 // (POST /api/v1/tasks/templates/import) 106 DMAPIImportTaskTemplate(c *gin.Context) 107 // delete task template template 108 // (DELETE /api/v1/tasks/templates/{task-name}) 109 DMAPIDeleteTaskTemplate(c *gin.Context, taskName string) 110 // get task template template 111 // (GET /api/v1/tasks/templates/{task-name}) 112 DMAPIGetTaskTemplate(c *gin.Context, taskName string) 113 // update task template template 114 // (PUT /api/v1/tasks/templates/{task-name}) 115 DMAPUpdateTaskTemplate(c *gin.Context, taskName string) 116 // delete a task 117 // (DELETE /api/v1/tasks/{task-name}) 118 DMAPIDeleteTask(c *gin.Context, taskName string, params DMAPIDeleteTaskParams) 119 // get a task 120 // (GET /api/v1/tasks/{task-name}) 121 DMAPIGetTask(c *gin.Context, taskName string, params DMAPIGetTaskParams) 122 // update a task 123 // (PUT /api/v1/tasks/{task-name}) 124 DMAPIUpdateTask(c *gin.Context, taskName string) 125 // get task source table and target table route relation 126 // (GET /api/v1/tasks/{task-name}/sources/{source-name}/migrate_targets) 127 DMAPIGetTaskMigrateTargets(c *gin.Context, taskName string, sourceName string, params DMAPIGetTaskMigrateTargetsParams) 128 // get task source schema list 129 // (GET /api/v1/tasks/{task-name}/sources/{source-name}/schemas) 130 DMAPIGetSchemaListByTaskAndSource(c *gin.Context, taskName string, sourceName string) 131 // get task source table list 132 // (GET /api/v1/tasks/{task-name}/sources/{source-name}/schemas/{schema-name}) 133 DMAPIGetTableListByTaskAndSource(c *gin.Context, taskName string, sourceName string, schemaName string) 134 // delete task source table structure 135 // (DELETE /api/v1/tasks/{task-name}/sources/{source-name}/schemas/{schema-name}/{table-name}) 136 DMAPIDeleteTableStructure(c *gin.Context, taskName string, sourceName string, schemaName string, tableName string) 137 // get task source table structure 138 // (GET /api/v1/tasks/{task-name}/sources/{source-name}/schemas/{schema-name}/{table-name}) 139 DMAPIGetTableStructure(c *gin.Context, taskName string, sourceName string, schemaName string, tableName string) 140 // operate task source table structure 141 // (PUT /api/v1/tasks/{task-name}/sources/{source-name}/schemas/{schema-name}/{table-name}) 142 DMAPIOperateTableStructure(c *gin.Context, taskName string, sourceName string, schemaName string, tableName string) 143 // start a task 144 // (POST /api/v1/tasks/{task-name}/start) 145 DMAPIStartTask(c *gin.Context, taskName string) 146 // get task status 147 // (GET /api/v1/tasks/{task-name}/status) 148 DMAPIGetTaskStatus(c *gin.Context, taskName string, params DMAPIGetTaskStatusParams) 149 // stop a task 150 // (POST /api/v1/tasks/{task-name}/stop) 151 DMAPIStopTask(c *gin.Context, taskName string) 152 } 153 154 // ServerInterfaceWrapper converts contexts to parameters. 155 type ServerInterfaceWrapper struct { 156 Handler ServerInterface 157 HandlerMiddlewares []MiddlewareFunc 158 } 159 160 type MiddlewareFunc func(c *gin.Context) 161 162 // DMAPIGetClusterInfo operation middleware 163 func (siw *ServerInterfaceWrapper) DMAPIGetClusterInfo(c *gin.Context) { 164 for _, middleware := range siw.HandlerMiddlewares { 165 middleware(c) 166 } 167 168 siw.Handler.DMAPIGetClusterInfo(c) 169 } 170 171 // DMAPIUpdateClusterInfo operation middleware 172 func (siw *ServerInterfaceWrapper) DMAPIUpdateClusterInfo(c *gin.Context) { 173 for _, middleware := range siw.HandlerMiddlewares { 174 middleware(c) 175 } 176 177 siw.Handler.DMAPIUpdateClusterInfo(c) 178 } 179 180 // DMAPIGetClusterMasterList operation middleware 181 func (siw *ServerInterfaceWrapper) DMAPIGetClusterMasterList(c *gin.Context) { 182 for _, middleware := range siw.HandlerMiddlewares { 183 middleware(c) 184 } 185 186 siw.Handler.DMAPIGetClusterMasterList(c) 187 } 188 189 // DMAPIOfflineMasterNode operation middleware 190 func (siw *ServerInterfaceWrapper) DMAPIOfflineMasterNode(c *gin.Context) { 191 var err error 192 193 // ------------- Path parameter "master-name" ------------- 194 var masterName string 195 196 err = runtime.BindStyledParameter("simple", false, "master-name", c.Param("master-name"), &masterName) 197 if err != nil { 198 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter master-name: %s", err)}) 199 return 200 } 201 202 for _, middleware := range siw.HandlerMiddlewares { 203 middleware(c) 204 } 205 206 siw.Handler.DMAPIOfflineMasterNode(c, masterName) 207 } 208 209 // DMAPIGetClusterWorkerList operation middleware 210 func (siw *ServerInterfaceWrapper) DMAPIGetClusterWorkerList(c *gin.Context) { 211 for _, middleware := range siw.HandlerMiddlewares { 212 middleware(c) 213 } 214 215 siw.Handler.DMAPIGetClusterWorkerList(c) 216 } 217 218 // DMAPIOfflineWorkerNode operation middleware 219 func (siw *ServerInterfaceWrapper) DMAPIOfflineWorkerNode(c *gin.Context) { 220 var err error 221 222 // ------------- Path parameter "worker-name" ------------- 223 var workerName string 224 225 err = runtime.BindStyledParameter("simple", false, "worker-name", c.Param("worker-name"), &workerName) 226 if err != nil { 227 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter worker-name: %s", err)}) 228 return 229 } 230 231 for _, middleware := range siw.HandlerMiddlewares { 232 middleware(c) 233 } 234 235 siw.Handler.DMAPIOfflineWorkerNode(c, workerName) 236 } 237 238 // GetDocJSON operation middleware 239 func (siw *ServerInterfaceWrapper) GetDocJSON(c *gin.Context) { 240 for _, middleware := range siw.HandlerMiddlewares { 241 middleware(c) 242 } 243 244 siw.Handler.GetDocJSON(c) 245 } 246 247 // GetDocHTML operation middleware 248 func (siw *ServerInterfaceWrapper) GetDocHTML(c *gin.Context) { 249 for _, middleware := range siw.HandlerMiddlewares { 250 middleware(c) 251 } 252 253 siw.Handler.GetDocHTML(c) 254 } 255 256 // DMAPIGetSourceList operation middleware 257 func (siw *ServerInterfaceWrapper) DMAPIGetSourceList(c *gin.Context) { 258 var err error 259 260 // Parameter object where we will unmarshal all parameters from the context 261 var params DMAPIGetSourceListParams 262 263 // ------------- Optional query parameter "with_status" ------------- 264 if paramValue := c.Query("with_status"); paramValue != "" { 265 } 266 267 err = runtime.BindQueryParameter("form", true, false, "with_status", c.Request.URL.Query(), ¶ms.WithStatus) 268 if err != nil { 269 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter with_status: %s", err)}) 270 return 271 } 272 273 // ------------- Optional query parameter "enable_relay" ------------- 274 if paramValue := c.Query("enable_relay"); paramValue != "" { 275 } 276 277 err = runtime.BindQueryParameter("form", true, false, "enable_relay", c.Request.URL.Query(), ¶ms.EnableRelay) 278 if err != nil { 279 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter enable_relay: %s", err)}) 280 return 281 } 282 283 for _, middleware := range siw.HandlerMiddlewares { 284 middleware(c) 285 } 286 287 siw.Handler.DMAPIGetSourceList(c, params) 288 } 289 290 // DMAPICreateSource operation middleware 291 func (siw *ServerInterfaceWrapper) DMAPICreateSource(c *gin.Context) { 292 for _, middleware := range siw.HandlerMiddlewares { 293 middleware(c) 294 } 295 296 siw.Handler.DMAPICreateSource(c) 297 } 298 299 // DMAPIDeleteSource operation middleware 300 func (siw *ServerInterfaceWrapper) DMAPIDeleteSource(c *gin.Context) { 301 var err error 302 303 // ------------- Path parameter "source-name" ------------- 304 var sourceName string 305 306 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 307 if err != nil { 308 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 309 return 310 } 311 312 // Parameter object where we will unmarshal all parameters from the context 313 var params DMAPIDeleteSourceParams 314 315 // ------------- Optional query parameter "force" ------------- 316 if paramValue := c.Query("force"); paramValue != "" { 317 } 318 319 err = runtime.BindQueryParameter("form", true, false, "force", c.Request.URL.Query(), ¶ms.Force) 320 if err != nil { 321 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter force: %s", err)}) 322 return 323 } 324 325 for _, middleware := range siw.HandlerMiddlewares { 326 middleware(c) 327 } 328 329 siw.Handler.DMAPIDeleteSource(c, sourceName, params) 330 } 331 332 // DMAPIGetSource operation middleware 333 func (siw *ServerInterfaceWrapper) DMAPIGetSource(c *gin.Context) { 334 var err error 335 336 // ------------- Path parameter "source-name" ------------- 337 var sourceName string 338 339 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 340 if err != nil { 341 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 342 return 343 } 344 345 // Parameter object where we will unmarshal all parameters from the context 346 var params DMAPIGetSourceParams 347 348 // ------------- Optional query parameter "with_status" ------------- 349 if paramValue := c.Query("with_status"); paramValue != "" { 350 } 351 352 err = runtime.BindQueryParameter("form", true, false, "with_status", c.Request.URL.Query(), ¶ms.WithStatus) 353 if err != nil { 354 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter with_status: %s", err)}) 355 return 356 } 357 358 for _, middleware := range siw.HandlerMiddlewares { 359 middleware(c) 360 } 361 362 siw.Handler.DMAPIGetSource(c, sourceName, params) 363 } 364 365 // DMAPIUpdateSource operation middleware 366 func (siw *ServerInterfaceWrapper) DMAPIUpdateSource(c *gin.Context) { 367 var err error 368 369 // ------------- Path parameter "source-name" ------------- 370 var sourceName string 371 372 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 373 if err != nil { 374 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 375 return 376 } 377 378 for _, middleware := range siw.HandlerMiddlewares { 379 middleware(c) 380 } 381 382 siw.Handler.DMAPIUpdateSource(c, sourceName) 383 } 384 385 // DMAPIDisableSource operation middleware 386 func (siw *ServerInterfaceWrapper) DMAPIDisableSource(c *gin.Context) { 387 var err error 388 389 // ------------- Path parameter "source-name" ------------- 390 var sourceName string 391 392 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 393 if err != nil { 394 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 395 return 396 } 397 398 for _, middleware := range siw.HandlerMiddlewares { 399 middleware(c) 400 } 401 402 siw.Handler.DMAPIDisableSource(c, sourceName) 403 } 404 405 // DMAPIEnableSource operation middleware 406 func (siw *ServerInterfaceWrapper) DMAPIEnableSource(c *gin.Context) { 407 var err error 408 409 // ------------- Path parameter "source-name" ------------- 410 var sourceName string 411 412 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 413 if err != nil { 414 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 415 return 416 } 417 418 for _, middleware := range siw.HandlerMiddlewares { 419 middleware(c) 420 } 421 422 siw.Handler.DMAPIEnableSource(c, sourceName) 423 } 424 425 // DMAPIDisableRelay operation middleware 426 func (siw *ServerInterfaceWrapper) DMAPIDisableRelay(c *gin.Context) { 427 var err error 428 429 // ------------- Path parameter "source-name" ------------- 430 var sourceName string 431 432 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 433 if err != nil { 434 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 435 return 436 } 437 438 for _, middleware := range siw.HandlerMiddlewares { 439 middleware(c) 440 } 441 442 siw.Handler.DMAPIDisableRelay(c, sourceName) 443 } 444 445 // DMAPIEnableRelay operation middleware 446 func (siw *ServerInterfaceWrapper) DMAPIEnableRelay(c *gin.Context) { 447 var err error 448 449 // ------------- Path parameter "source-name" ------------- 450 var sourceName string 451 452 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 453 if err != nil { 454 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 455 return 456 } 457 458 for _, middleware := range siw.HandlerMiddlewares { 459 middleware(c) 460 } 461 462 siw.Handler.DMAPIEnableRelay(c, sourceName) 463 } 464 465 // DMAPIPurgeRelay operation middleware 466 func (siw *ServerInterfaceWrapper) DMAPIPurgeRelay(c *gin.Context) { 467 var err error 468 469 // ------------- Path parameter "source-name" ------------- 470 var sourceName string 471 472 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 473 if err != nil { 474 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 475 return 476 } 477 478 for _, middleware := range siw.HandlerMiddlewares { 479 middleware(c) 480 } 481 482 siw.Handler.DMAPIPurgeRelay(c, sourceName) 483 } 484 485 // DMAPIGetSourceSchemaList operation middleware 486 func (siw *ServerInterfaceWrapper) DMAPIGetSourceSchemaList(c *gin.Context) { 487 var err error 488 489 // ------------- Path parameter "source-name" ------------- 490 var sourceName string 491 492 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 493 if err != nil { 494 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 495 return 496 } 497 498 for _, middleware := range siw.HandlerMiddlewares { 499 middleware(c) 500 } 501 502 siw.Handler.DMAPIGetSourceSchemaList(c, sourceName) 503 } 504 505 // DMAPIGetSourceTableList operation middleware 506 func (siw *ServerInterfaceWrapper) DMAPIGetSourceTableList(c *gin.Context) { 507 var err error 508 509 // ------------- Path parameter "source-name" ------------- 510 var sourceName string 511 512 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 513 if err != nil { 514 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 515 return 516 } 517 518 // ------------- Path parameter "schema-name" ------------- 519 var schemaName string 520 521 err = runtime.BindStyledParameter("simple", false, "schema-name", c.Param("schema-name"), &schemaName) 522 if err != nil { 523 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter schema-name: %s", err)}) 524 return 525 } 526 527 for _, middleware := range siw.HandlerMiddlewares { 528 middleware(c) 529 } 530 531 siw.Handler.DMAPIGetSourceTableList(c, sourceName, schemaName) 532 } 533 534 // DMAPIGetSourceStatus operation middleware 535 func (siw *ServerInterfaceWrapper) DMAPIGetSourceStatus(c *gin.Context) { 536 var err error 537 538 // ------------- Path parameter "source-name" ------------- 539 var sourceName string 540 541 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 542 if err != nil { 543 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 544 return 545 } 546 547 for _, middleware := range siw.HandlerMiddlewares { 548 middleware(c) 549 } 550 551 siw.Handler.DMAPIGetSourceStatus(c, sourceName) 552 } 553 554 // DMAPITransferSource operation middleware 555 func (siw *ServerInterfaceWrapper) DMAPITransferSource(c *gin.Context) { 556 var err error 557 558 // ------------- Path parameter "source-name" ------------- 559 var sourceName string 560 561 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 562 if err != nil { 563 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 564 return 565 } 566 567 for _, middleware := range siw.HandlerMiddlewares { 568 middleware(c) 569 } 570 571 siw.Handler.DMAPITransferSource(c, sourceName) 572 } 573 574 // DMAPIGetTaskList operation middleware 575 func (siw *ServerInterfaceWrapper) DMAPIGetTaskList(c *gin.Context) { 576 var err error 577 578 // Parameter object where we will unmarshal all parameters from the context 579 var params DMAPIGetTaskListParams 580 581 // ------------- Optional query parameter "with_status" ------------- 582 if paramValue := c.Query("with_status"); paramValue != "" { 583 } 584 585 err = runtime.BindQueryParameter("form", true, false, "with_status", c.Request.URL.Query(), ¶ms.WithStatus) 586 if err != nil { 587 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter with_status: %s", err)}) 588 return 589 } 590 591 // ------------- Optional query parameter "stage" ------------- 592 if paramValue := c.Query("stage"); paramValue != "" { 593 } 594 595 err = runtime.BindQueryParameter("form", true, false, "stage", c.Request.URL.Query(), ¶ms.Stage) 596 if err != nil { 597 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter stage: %s", err)}) 598 return 599 } 600 601 // ------------- Optional query parameter "source_name_list" ------------- 602 if paramValue := c.Query("source_name_list"); paramValue != "" { 603 } 604 605 err = runtime.BindQueryParameter("form", true, false, "source_name_list", c.Request.URL.Query(), ¶ms.SourceNameList) 606 if err != nil { 607 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source_name_list: %s", err)}) 608 return 609 } 610 611 for _, middleware := range siw.HandlerMiddlewares { 612 middleware(c) 613 } 614 615 siw.Handler.DMAPIGetTaskList(c, params) 616 } 617 618 // DMAPICreateTask operation middleware 619 func (siw *ServerInterfaceWrapper) DMAPICreateTask(c *gin.Context) { 620 for _, middleware := range siw.HandlerMiddlewares { 621 middleware(c) 622 } 623 624 siw.Handler.DMAPICreateTask(c) 625 } 626 627 // DMAPIConvertTask operation middleware 628 func (siw *ServerInterfaceWrapper) DMAPIConvertTask(c *gin.Context) { 629 for _, middleware := range siw.HandlerMiddlewares { 630 middleware(c) 631 } 632 633 siw.Handler.DMAPIConvertTask(c) 634 } 635 636 // DMAPIGetTaskTemplateList operation middleware 637 func (siw *ServerInterfaceWrapper) DMAPIGetTaskTemplateList(c *gin.Context) { 638 for _, middleware := range siw.HandlerMiddlewares { 639 middleware(c) 640 } 641 642 siw.Handler.DMAPIGetTaskTemplateList(c) 643 } 644 645 // DMAPICreateTaskTemplate operation middleware 646 func (siw *ServerInterfaceWrapper) DMAPICreateTaskTemplate(c *gin.Context) { 647 for _, middleware := range siw.HandlerMiddlewares { 648 middleware(c) 649 } 650 651 siw.Handler.DMAPICreateTaskTemplate(c) 652 } 653 654 // DMAPIImportTaskTemplate operation middleware 655 func (siw *ServerInterfaceWrapper) DMAPIImportTaskTemplate(c *gin.Context) { 656 for _, middleware := range siw.HandlerMiddlewares { 657 middleware(c) 658 } 659 660 siw.Handler.DMAPIImportTaskTemplate(c) 661 } 662 663 // DMAPIDeleteTaskTemplate operation middleware 664 func (siw *ServerInterfaceWrapper) DMAPIDeleteTaskTemplate(c *gin.Context) { 665 var err error 666 667 // ------------- Path parameter "task-name" ------------- 668 var taskName string 669 670 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 671 if err != nil { 672 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 673 return 674 } 675 676 for _, middleware := range siw.HandlerMiddlewares { 677 middleware(c) 678 } 679 680 siw.Handler.DMAPIDeleteTaskTemplate(c, taskName) 681 } 682 683 // DMAPIGetTaskTemplate operation middleware 684 func (siw *ServerInterfaceWrapper) DMAPIGetTaskTemplate(c *gin.Context) { 685 var err error 686 687 // ------------- Path parameter "task-name" ------------- 688 var taskName string 689 690 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 691 if err != nil { 692 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 693 return 694 } 695 696 for _, middleware := range siw.HandlerMiddlewares { 697 middleware(c) 698 } 699 700 siw.Handler.DMAPIGetTaskTemplate(c, taskName) 701 } 702 703 // DMAPUpdateTaskTemplate operation middleware 704 func (siw *ServerInterfaceWrapper) DMAPUpdateTaskTemplate(c *gin.Context) { 705 var err error 706 707 // ------------- Path parameter "task-name" ------------- 708 var taskName string 709 710 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 711 if err != nil { 712 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 713 return 714 } 715 716 for _, middleware := range siw.HandlerMiddlewares { 717 middleware(c) 718 } 719 720 siw.Handler.DMAPUpdateTaskTemplate(c, taskName) 721 } 722 723 // DMAPIDeleteTask operation middleware 724 func (siw *ServerInterfaceWrapper) DMAPIDeleteTask(c *gin.Context) { 725 var err error 726 727 // ------------- Path parameter "task-name" ------------- 728 var taskName string 729 730 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 731 if err != nil { 732 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 733 return 734 } 735 736 // Parameter object where we will unmarshal all parameters from the context 737 var params DMAPIDeleteTaskParams 738 739 // ------------- Optional query parameter "force" ------------- 740 if paramValue := c.Query("force"); paramValue != "" { 741 } 742 743 err = runtime.BindQueryParameter("form", true, false, "force", c.Request.URL.Query(), ¶ms.Force) 744 if err != nil { 745 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter force: %s", err)}) 746 return 747 } 748 749 for _, middleware := range siw.HandlerMiddlewares { 750 middleware(c) 751 } 752 753 siw.Handler.DMAPIDeleteTask(c, taskName, params) 754 } 755 756 // DMAPIGetTask operation middleware 757 func (siw *ServerInterfaceWrapper) DMAPIGetTask(c *gin.Context) { 758 var err error 759 760 // ------------- Path parameter "task-name" ------------- 761 var taskName string 762 763 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 764 if err != nil { 765 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 766 return 767 } 768 769 // Parameter object where we will unmarshal all parameters from the context 770 var params DMAPIGetTaskParams 771 772 // ------------- Optional query parameter "with_status" ------------- 773 if paramValue := c.Query("with_status"); paramValue != "" { 774 } 775 776 err = runtime.BindQueryParameter("form", true, false, "with_status", c.Request.URL.Query(), ¶ms.WithStatus) 777 if err != nil { 778 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter with_status: %s", err)}) 779 return 780 } 781 782 for _, middleware := range siw.HandlerMiddlewares { 783 middleware(c) 784 } 785 786 siw.Handler.DMAPIGetTask(c, taskName, params) 787 } 788 789 // DMAPIUpdateTask operation middleware 790 func (siw *ServerInterfaceWrapper) DMAPIUpdateTask(c *gin.Context) { 791 var err error 792 793 // ------------- Path parameter "task-name" ------------- 794 var taskName string 795 796 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 797 if err != nil { 798 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 799 return 800 } 801 802 for _, middleware := range siw.HandlerMiddlewares { 803 middleware(c) 804 } 805 806 siw.Handler.DMAPIUpdateTask(c, taskName) 807 } 808 809 // DMAPIGetTaskMigrateTargets operation middleware 810 func (siw *ServerInterfaceWrapper) DMAPIGetTaskMigrateTargets(c *gin.Context) { 811 var err error 812 813 // ------------- Path parameter "task-name" ------------- 814 var taskName string 815 816 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 817 if err != nil { 818 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 819 return 820 } 821 822 // ------------- Path parameter "source-name" ------------- 823 var sourceName string 824 825 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 826 if err != nil { 827 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 828 return 829 } 830 831 // Parameter object where we will unmarshal all parameters from the context 832 var params DMAPIGetTaskMigrateTargetsParams 833 834 // ------------- Optional query parameter "schema_pattern" ------------- 835 if paramValue := c.Query("schema_pattern"); paramValue != "" { 836 } 837 838 err = runtime.BindQueryParameter("form", true, false, "schema_pattern", c.Request.URL.Query(), ¶ms.SchemaPattern) 839 if err != nil { 840 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter schema_pattern: %s", err)}) 841 return 842 } 843 844 // ------------- Optional query parameter "table_pattern" ------------- 845 if paramValue := c.Query("table_pattern"); paramValue != "" { 846 } 847 848 err = runtime.BindQueryParameter("form", true, false, "table_pattern", c.Request.URL.Query(), ¶ms.TablePattern) 849 if err != nil { 850 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter table_pattern: %s", err)}) 851 return 852 } 853 854 for _, middleware := range siw.HandlerMiddlewares { 855 middleware(c) 856 } 857 858 siw.Handler.DMAPIGetTaskMigrateTargets(c, taskName, sourceName, params) 859 } 860 861 // DMAPIGetSchemaListByTaskAndSource operation middleware 862 func (siw *ServerInterfaceWrapper) DMAPIGetSchemaListByTaskAndSource(c *gin.Context) { 863 var err error 864 865 // ------------- Path parameter "task-name" ------------- 866 var taskName string 867 868 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 869 if err != nil { 870 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 871 return 872 } 873 874 // ------------- Path parameter "source-name" ------------- 875 var sourceName string 876 877 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 878 if err != nil { 879 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 880 return 881 } 882 883 for _, middleware := range siw.HandlerMiddlewares { 884 middleware(c) 885 } 886 887 siw.Handler.DMAPIGetSchemaListByTaskAndSource(c, taskName, sourceName) 888 } 889 890 // DMAPIGetTableListByTaskAndSource operation middleware 891 func (siw *ServerInterfaceWrapper) DMAPIGetTableListByTaskAndSource(c *gin.Context) { 892 var err error 893 894 // ------------- Path parameter "task-name" ------------- 895 var taskName string 896 897 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 898 if err != nil { 899 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 900 return 901 } 902 903 // ------------- Path parameter "source-name" ------------- 904 var sourceName string 905 906 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 907 if err != nil { 908 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 909 return 910 } 911 912 // ------------- Path parameter "schema-name" ------------- 913 var schemaName string 914 915 err = runtime.BindStyledParameter("simple", false, "schema-name", c.Param("schema-name"), &schemaName) 916 if err != nil { 917 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter schema-name: %s", err)}) 918 return 919 } 920 921 for _, middleware := range siw.HandlerMiddlewares { 922 middleware(c) 923 } 924 925 siw.Handler.DMAPIGetTableListByTaskAndSource(c, taskName, sourceName, schemaName) 926 } 927 928 // DMAPIDeleteTableStructure operation middleware 929 func (siw *ServerInterfaceWrapper) DMAPIDeleteTableStructure(c *gin.Context) { 930 var err error 931 932 // ------------- Path parameter "task-name" ------------- 933 var taskName string 934 935 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 936 if err != nil { 937 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 938 return 939 } 940 941 // ------------- Path parameter "source-name" ------------- 942 var sourceName string 943 944 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 945 if err != nil { 946 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 947 return 948 } 949 950 // ------------- Path parameter "schema-name" ------------- 951 var schemaName string 952 953 err = runtime.BindStyledParameter("simple", false, "schema-name", c.Param("schema-name"), &schemaName) 954 if err != nil { 955 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter schema-name: %s", err)}) 956 return 957 } 958 959 // ------------- Path parameter "table-name" ------------- 960 var tableName string 961 962 err = runtime.BindStyledParameter("simple", false, "table-name", c.Param("table-name"), &tableName) 963 if err != nil { 964 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter table-name: %s", err)}) 965 return 966 } 967 968 for _, middleware := range siw.HandlerMiddlewares { 969 middleware(c) 970 } 971 972 siw.Handler.DMAPIDeleteTableStructure(c, taskName, sourceName, schemaName, tableName) 973 } 974 975 // DMAPIGetTableStructure operation middleware 976 func (siw *ServerInterfaceWrapper) DMAPIGetTableStructure(c *gin.Context) { 977 var err error 978 979 // ------------- Path parameter "task-name" ------------- 980 var taskName string 981 982 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 983 if err != nil { 984 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 985 return 986 } 987 988 // ------------- Path parameter "source-name" ------------- 989 var sourceName string 990 991 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 992 if err != nil { 993 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 994 return 995 } 996 997 // ------------- Path parameter "schema-name" ------------- 998 var schemaName string 999 1000 err = runtime.BindStyledParameter("simple", false, "schema-name", c.Param("schema-name"), &schemaName) 1001 if err != nil { 1002 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter schema-name: %s", err)}) 1003 return 1004 } 1005 1006 // ------------- Path parameter "table-name" ------------- 1007 var tableName string 1008 1009 err = runtime.BindStyledParameter("simple", false, "table-name", c.Param("table-name"), &tableName) 1010 if err != nil { 1011 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter table-name: %s", err)}) 1012 return 1013 } 1014 1015 for _, middleware := range siw.HandlerMiddlewares { 1016 middleware(c) 1017 } 1018 1019 siw.Handler.DMAPIGetTableStructure(c, taskName, sourceName, schemaName, tableName) 1020 } 1021 1022 // DMAPIOperateTableStructure operation middleware 1023 func (siw *ServerInterfaceWrapper) DMAPIOperateTableStructure(c *gin.Context) { 1024 var err error 1025 1026 // ------------- Path parameter "task-name" ------------- 1027 var taskName string 1028 1029 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 1030 if err != nil { 1031 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 1032 return 1033 } 1034 1035 // ------------- Path parameter "source-name" ------------- 1036 var sourceName string 1037 1038 err = runtime.BindStyledParameter("simple", false, "source-name", c.Param("source-name"), &sourceName) 1039 if err != nil { 1040 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source-name: %s", err)}) 1041 return 1042 } 1043 1044 // ------------- Path parameter "schema-name" ------------- 1045 var schemaName string 1046 1047 err = runtime.BindStyledParameter("simple", false, "schema-name", c.Param("schema-name"), &schemaName) 1048 if err != nil { 1049 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter schema-name: %s", err)}) 1050 return 1051 } 1052 1053 // ------------- Path parameter "table-name" ------------- 1054 var tableName string 1055 1056 err = runtime.BindStyledParameter("simple", false, "table-name", c.Param("table-name"), &tableName) 1057 if err != nil { 1058 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter table-name: %s", err)}) 1059 return 1060 } 1061 1062 for _, middleware := range siw.HandlerMiddlewares { 1063 middleware(c) 1064 } 1065 1066 siw.Handler.DMAPIOperateTableStructure(c, taskName, sourceName, schemaName, tableName) 1067 } 1068 1069 // DMAPIStartTask operation middleware 1070 func (siw *ServerInterfaceWrapper) DMAPIStartTask(c *gin.Context) { 1071 var err error 1072 1073 // ------------- Path parameter "task-name" ------------- 1074 var taskName string 1075 1076 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 1077 if err != nil { 1078 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 1079 return 1080 } 1081 1082 for _, middleware := range siw.HandlerMiddlewares { 1083 middleware(c) 1084 } 1085 1086 siw.Handler.DMAPIStartTask(c, taskName) 1087 } 1088 1089 // DMAPIGetTaskStatus operation middleware 1090 func (siw *ServerInterfaceWrapper) DMAPIGetTaskStatus(c *gin.Context) { 1091 var err error 1092 1093 // ------------- Path parameter "task-name" ------------- 1094 var taskName string 1095 1096 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 1097 if err != nil { 1098 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 1099 return 1100 } 1101 1102 // Parameter object where we will unmarshal all parameters from the context 1103 var params DMAPIGetTaskStatusParams 1104 1105 // ------------- Optional query parameter "source_name_list" ------------- 1106 if paramValue := c.Query("source_name_list"); paramValue != "" { 1107 } 1108 1109 err = runtime.BindQueryParameter("form", true, false, "source_name_list", c.Request.URL.Query(), ¶ms.SourceNameList) 1110 if err != nil { 1111 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter source_name_list: %s", err)}) 1112 return 1113 } 1114 1115 for _, middleware := range siw.HandlerMiddlewares { 1116 middleware(c) 1117 } 1118 1119 siw.Handler.DMAPIGetTaskStatus(c, taskName, params) 1120 } 1121 1122 // DMAPIStopTask operation middleware 1123 func (siw *ServerInterfaceWrapper) DMAPIStopTask(c *gin.Context) { 1124 var err error 1125 1126 // ------------- Path parameter "task-name" ------------- 1127 var taskName string 1128 1129 err = runtime.BindStyledParameter("simple", false, "task-name", c.Param("task-name"), &taskName) 1130 if err != nil { 1131 c.JSON(http.StatusBadRequest, gin.H{"msg": fmt.Sprintf("Invalid format for parameter task-name: %s", err)}) 1132 return 1133 } 1134 1135 for _, middleware := range siw.HandlerMiddlewares { 1136 middleware(c) 1137 } 1138 1139 siw.Handler.DMAPIStopTask(c, taskName) 1140 } 1141 1142 // GinServerOptions provides options for the Gin server. 1143 type GinServerOptions struct { 1144 BaseURL string 1145 Middlewares []MiddlewareFunc 1146 } 1147 1148 // RegisterHandlers creates http.Handler with routing matching OpenAPI spec. 1149 func RegisterHandlers(router *gin.Engine, si ServerInterface) *gin.Engine { 1150 return RegisterHandlersWithOptions(router, si, GinServerOptions{}) 1151 } 1152 1153 // RegisterHandlersWithOptions creates http.Handler with additional options 1154 func RegisterHandlersWithOptions(router *gin.Engine, si ServerInterface, options GinServerOptions) *gin.Engine { 1155 wrapper := ServerInterfaceWrapper{ 1156 Handler: si, 1157 HandlerMiddlewares: options.Middlewares, 1158 } 1159 1160 router.GET(options.BaseURL+"/api/v1/cluster/info", wrapper.DMAPIGetClusterInfo) 1161 1162 router.PUT(options.BaseURL+"/api/v1/cluster/info", wrapper.DMAPIUpdateClusterInfo) 1163 1164 router.GET(options.BaseURL+"/api/v1/cluster/masters", wrapper.DMAPIGetClusterMasterList) 1165 1166 router.DELETE(options.BaseURL+"/api/v1/cluster/masters/:master-name", wrapper.DMAPIOfflineMasterNode) 1167 1168 router.GET(options.BaseURL+"/api/v1/cluster/workers", wrapper.DMAPIGetClusterWorkerList) 1169 1170 router.DELETE(options.BaseURL+"/api/v1/cluster/workers/:worker-name", wrapper.DMAPIOfflineWorkerNode) 1171 1172 router.GET(options.BaseURL+"/api/v1/dm.json", wrapper.GetDocJSON) 1173 1174 router.GET(options.BaseURL+"/api/v1/docs", wrapper.GetDocHTML) 1175 1176 router.GET(options.BaseURL+"/api/v1/sources", wrapper.DMAPIGetSourceList) 1177 1178 router.POST(options.BaseURL+"/api/v1/sources", wrapper.DMAPICreateSource) 1179 1180 router.DELETE(options.BaseURL+"/api/v1/sources/:source-name", wrapper.DMAPIDeleteSource) 1181 1182 router.GET(options.BaseURL+"/api/v1/sources/:source-name", wrapper.DMAPIGetSource) 1183 1184 router.PUT(options.BaseURL+"/api/v1/sources/:source-name", wrapper.DMAPIUpdateSource) 1185 1186 router.POST(options.BaseURL+"/api/v1/sources/:source-name/disable", wrapper.DMAPIDisableSource) 1187 1188 router.POST(options.BaseURL+"/api/v1/sources/:source-name/enable", wrapper.DMAPIEnableSource) 1189 1190 router.POST(options.BaseURL+"/api/v1/sources/:source-name/relay/disable", wrapper.DMAPIDisableRelay) 1191 1192 router.POST(options.BaseURL+"/api/v1/sources/:source-name/relay/enable", wrapper.DMAPIEnableRelay) 1193 1194 router.POST(options.BaseURL+"/api/v1/sources/:source-name/relay/purge", wrapper.DMAPIPurgeRelay) 1195 1196 router.GET(options.BaseURL+"/api/v1/sources/:source-name/schemas", wrapper.DMAPIGetSourceSchemaList) 1197 1198 router.GET(options.BaseURL+"/api/v1/sources/:source-name/schemas/:schema-name", wrapper.DMAPIGetSourceTableList) 1199 1200 router.GET(options.BaseURL+"/api/v1/sources/:source-name/status", wrapper.DMAPIGetSourceStatus) 1201 1202 router.POST(options.BaseURL+"/api/v1/sources/:source-name/transfer", wrapper.DMAPITransferSource) 1203 1204 router.GET(options.BaseURL+"/api/v1/tasks", wrapper.DMAPIGetTaskList) 1205 1206 router.POST(options.BaseURL+"/api/v1/tasks", wrapper.DMAPICreateTask) 1207 1208 router.POST(options.BaseURL+"/api/v1/tasks/converters", wrapper.DMAPIConvertTask) 1209 1210 router.GET(options.BaseURL+"/api/v1/tasks/templates", wrapper.DMAPIGetTaskTemplateList) 1211 1212 router.POST(options.BaseURL+"/api/v1/tasks/templates", wrapper.DMAPICreateTaskTemplate) 1213 1214 router.POST(options.BaseURL+"/api/v1/tasks/templates/import", wrapper.DMAPIImportTaskTemplate) 1215 1216 router.DELETE(options.BaseURL+"/api/v1/tasks/templates/:task-name", wrapper.DMAPIDeleteTaskTemplate) 1217 1218 router.GET(options.BaseURL+"/api/v1/tasks/templates/:task-name", wrapper.DMAPIGetTaskTemplate) 1219 1220 router.PUT(options.BaseURL+"/api/v1/tasks/templates/:task-name", wrapper.DMAPUpdateTaskTemplate) 1221 1222 router.DELETE(options.BaseURL+"/api/v1/tasks/:task-name", wrapper.DMAPIDeleteTask) 1223 1224 router.GET(options.BaseURL+"/api/v1/tasks/:task-name", wrapper.DMAPIGetTask) 1225 1226 router.PUT(options.BaseURL+"/api/v1/tasks/:task-name", wrapper.DMAPIUpdateTask) 1227 1228 router.GET(options.BaseURL+"/api/v1/tasks/:task-name/sources/:source-name/migrate_targets", wrapper.DMAPIGetTaskMigrateTargets) 1229 1230 router.GET(options.BaseURL+"/api/v1/tasks/:task-name/sources/:source-name/schemas", wrapper.DMAPIGetSchemaListByTaskAndSource) 1231 1232 router.GET(options.BaseURL+"/api/v1/tasks/:task-name/sources/:source-name/schemas/:schema-name", wrapper.DMAPIGetTableListByTaskAndSource) 1233 1234 router.DELETE(options.BaseURL+"/api/v1/tasks/:task-name/sources/:source-name/schemas/:schema-name/:table-name", wrapper.DMAPIDeleteTableStructure) 1235 1236 router.GET(options.BaseURL+"/api/v1/tasks/:task-name/sources/:source-name/schemas/:schema-name/:table-name", wrapper.DMAPIGetTableStructure) 1237 1238 router.PUT(options.BaseURL+"/api/v1/tasks/:task-name/sources/:source-name/schemas/:schema-name/:table-name", wrapper.DMAPIOperateTableStructure) 1239 1240 router.POST(options.BaseURL+"/api/v1/tasks/:task-name/start", wrapper.DMAPIStartTask) 1241 1242 router.GET(options.BaseURL+"/api/v1/tasks/:task-name/status", wrapper.DMAPIGetTaskStatus) 1243 1244 router.POST(options.BaseURL+"/api/v1/tasks/:task-name/stop", wrapper.DMAPIStopTask) 1245 1246 return router 1247 } 1248 1249 // Base64 encoded, gzipped, json marshaled Swagger object 1250 var swaggerSpec = []string{ 1251 "H4sIAAAAAAAC/+x9bXPbOJLwX8Gj5z7sTEmWZDtO4qv9kMSerO+cl4o9tbe1lWMgEpSwJgEGAO3Rpvzf", 1252 "r/BCEiQBkrItx5pkP+w4Igh0N/odjea3UUjTjBJEBB8dfxvxcIVSqP58lSAm3kECl4hd0owmdLmWv2eM", 1253 "ZogJjNSoFeVC/hf9AdMsQaPj0Xz/+d5sb7Y3H41HYp3Jn7hgmCxHt+NRRll9+MvZy4NyHCYCLREb3d6O", 1254 "Rwx9zTFD0ej4n3oR8/LncjRd/AuFQs76Jsm5QOwdlP/fhhFGkfo1QjxkOBOYktGx+hVxDmgMxAqBMGcM", 1255 "EQFSNQkgNEKjsQut4xf7R07cYIKvUXsdShJMEOACityshrlZxl5BsByVsy4oTRAkctoEwQg54Mfcnknh", 1256 "YIYOmJTAFNW3TU/jQKyxF+rNAtkSurEmcsfm+FkISkYLUs1pgbDG/QdD8eh49P+nFZNODYdOnex5Ox4t", 1257 "GYwhgYPneavH21NoUpQzBAnWPI4FSnnffJoJ7ekMRSBjUP07YzRFYoVyPhjIj+Ur9sQ3lF3dGc6/q5f9", 1258 "cN76t1K/+t3kbEFzEgWc5ixEQcHI9TX1QyAfAjUcCKqlRdOsvWy65l+TyaxrQQGXjqX09OphKdy+RdRY", 1259 "1wptcdRTDBdHSfo6pC5COeWTkmvEJM9CfvUJfc2R5qL63grIr/pYSk6gGAnyqyCkJMbLIMaJg2j6IZAP", 1260 "ASZgDdMExJSlUICVEBk/nk4jGvK9DJNlCLO9kKbTf6+mAkeLKRdwkaCpXGSi58kZlPNO5HSTOE+SPSfZ", 1261 "+jDnGSUc/SlRtzlGoeOA1MkbDEGBLhQHeVlDM1gfhfQkltry8fykn+nNin6IH4iVXZRzLXqCudyYTyiB", 1262 "a2vZhh4M5R9SEXFBMwABk8MBM+PHDSgtKpWKvV+fv4cpOpejnQx/kqfZhfJDHCqz9E+iPM1ATnAbJrls", 1263 "ggSKAsWI6jfNu6PjUUTzRYKqvSN5upC+3HiEuMApFCgQVMAkYPRm6JsxJpivUBQs1gJt/NIGC2nIHFhh", 1264 "Io4OR70eau39cZtQLVSaYLqp5GK2U7IZr0EmeplNPQ0WmCR0GSwFjpz8wQQmS/D28uykMOZ5xgVDMAX6", 1265 "1ZqxQy/hPA739yconL2YzOfo5WSxD8PJbP9wH4bz+Ww2OzieT56/OHw5Go9IniQSr4bLWpnIGogeq1+A", 1266 "KPWZsv0DwNSGf4HJ3kz+b384LBE23k4M80Tyyt5UP9BL1GGTYESYoVBQtgY3K8SQAk3vS0KXAHOpGCQ/", 1267 "DYBgG9rhlDHK/o7F6h3i3OnrSJZR9gYgObbFRurXIJRuT+td9QyE2iVqStPYvJrype/N1ADVZxuqicY2", 1268 "PC5JeouE8WjPSEz9DkCoBwUusTDPAJbbVmqN3Kc2pKYZ5vI3w6YmnhZQ3bjpgERuux/DCAo4OHKoR9uO", 1269 "AEcpMGVpByhNKSly9W4kNP8+PBImlNkyEtr3eUDoK2dq+2Brh+FBATc+yJbBlz7cA9K8dPG3DPI7vGTK", 1270 "hWVLJPgDAl+b+DEweVjOyRfVnI8B/aU0wBeC5aHIGfJjoQEMQhV4BPxrUg9q3nw6fXV5Ci5fvT4/BV/E", 1271 "/Av4yxccfQGYiL/M57+A9x8uwfvfz8/Bq98vPwRn7998On13+v5y/PHT2btXn/4B/vv0H/qNX8D018v/", 1272 "90+j91EUYBKhPz6DN+e/X1yefjo9Ab9OfwGn79+evT/96xkh9OQ1ODn97dXv55fgzd9efbo4vfxrLuIX", 1273 "6eIQvPlwfv7q8rT4t3SrXGkJg1o7UosWzkSJcnYdw9Xv8wGRafl6MZdFVedWNZJ3D56ePpjNZvdOT59T", 1274 "GPWHXQmFkTvs6oiC/H5GigQ07rIlFBWq1vPS42/Tg9ElQ5w7H+o4ZThMDaq1AiJ7PmvpOioOwF0kb2Rh", 1275 "78sXvnT5IB56sX8076WG4fo+VvqgPHDUnbAKVyi8ChjiKixpclzG0ESNAGaEHQ1VDzEHGeQcRXvALer3", 1276 "SaKM6zD2YNrUxL1Br45TEFA6xBv0xknOV7UITgdb9Vn/zrBAXMVqGi+dSkZAYZBRTATg8hcowMk7EEKi", 1277 "JRkLAGMZGTBUxqXytSL91jqS4V+TIKREIOLAjX9NwJrm4AYSYWFY2zuHpQFfwnllagprIM3NGHwJ9/2P", 1278 "DtyP7mFf/tNpYNYkbCP7exbBguY0EzjFXOAQ8BVkkSSj1ADSeoMbLFY64262hpJkDXKOIhlhEwBNoApo", 1279 "GOaMA0y8c56cnIO0FpyWW9NMPlr75GJcx1nNNk5N72+WPubMFeRXGYlQ4p9nIKMJDteglnFux/5/ZJgZ", 1280 "v66Qp1lTmNQgnUEQWOdnyuXs+LkwIZ48iGXm5J/sWjt+5boHR7PW0pcrBIrBUoIyxDCNcAiTZA2Myovb", 1281 "KRmNVjQGZnJwDZMcHQO1hGQojkJKIn436BlKISYBz2CIahjMnzXhf4cJTvMUxAwhEGF+BdRbCoa3r++y", 1282 "/K2PJx40j/2Iebu+PF1tzQyFOF4b4Hm+sLJzMWWgBfYeOIsBoQLoN7HkCXXmLlWVAJQgcIOTBCyQUkB7", 1283 "4EJBas52jsE+RM+PDg8OJ/Hzl/FkPkcvJosI7RfpUOlovtCozPsTgA1Jb9PYJe9qW98oIW7TQ1k0fTRV", 1284 "CGVbxFXmOdAPK4/QsmE/88g7lUe+9XFJf7Riq+06l5jqiSr0qE/RoGFxEKrFRBuWiqh/aVB1Pgbzl89f", 1285 "/uIS9tq6HuZz8dw9mK2budwgaMIVVRASoIcHIIQiXAV5FqRlRVQdiJuV9FCYVOJqLMgz7UyVu2OFXz4x", 1286 "d+rVzfizwntvyvOFmtLlJrpLLwoiaq6sTfcpJ0S+3Kc568zqZCIbXdcO+4hegO1SxRfKXS2PY9pypt1Z", 1287 "pXvU8c64SpL1Z2EaibELFOYMi3V7GeVEm1oZzpO6h6fNW4xREpWWbYWjCBHtXC+RKIMae6LaJCBmNFVD", 1288 "lO8VSz+nrZYa4StiIoBJQm9QFISkDfYbmqaUgPdGM19cnAP5Do5xCHXyoCRWL3E4T4IQ+gMva2KtqoqR", 1289 "Nrc5eVZOLDHxTv2bNZ3E4+PpO+MtTP/n2exlURXSQK1/1Su09i/6plpP7krG8LVE7Qqty5IUa/Ge9ZqR", 1290 "UZ2WDhq0AXRKhwnK3jKaZ460cZS0S916NzrGjIsgoaG2Mq5XZDSKos2mFTqb7hqak80nbCVL1OzjCucW", 1291 "IiXY1oJOopZVOq5SOY+vV/NLYpjwVnqktCQqCtcaQIZN6vWaijevt62JcSsrczloPSrdbO1EymgulwpK", 1292 "aWWudY7LvHtBiBN4TR3WTP9e1vWVtGq4fS5JLEJ8Z2GiqYl0Fz46MwCQ8xvKIu+M5YD6lAeHz46GeKJF", 1293 "hsE9t3xozXtwMDtyRbNZkVDoLGVVgypXpYxHul6yQxcpqJZF6zwzKsbJdwbWiw6uCtVex2ZFt73Hn5Bf", 1294 "DS/quIT8qirpGI9y7vL1DG7yYQs/RqkYWG0XODLUZsm6CBf/6tBCHY6PVbjrd3z0qMkw78cmuW+90oN0", 1295 "1bP0F6Voh4irvJ90iW4YdfmeBc/zEphenq9Y5R78y1CW4BB6+LhRjtnOmplqZuNtJ2u7ohq5dOKGdZwF", 1296 "Z9mAOHlHhuWdlZ0MpfQaBSnS58qDLYl+T+WVlSu7gFx5QhG9ISYeKn52p+5hjIKURigQOEVBVORI29ER", 1297 "ThEoHkuzIt8s8s6W3p5xp8apyDVIPzSETessJhSQDtggvzLlgmqADdD+bHY0mc0ns30wf3Y8OzyePRtW", 1298 "Yn0haNa5ZffHSQJLczGY6jcQ67hF40uzOumf8YGY1eoR2k5qnmYDBd2qyt2gEG6wzkkojAZCYh1UW4ee", 1299 "DjYpzug7OLRPSfmD/D6Td6EGGn99IGYXaxJWmKlTdjdm8hFQsNlcoc6pxi4XnyFOk2sUBcpDp+FV4DlK", 1300 "71SzxYURJ2ncJ8V+3VmQ0uDpVKUVOTpyfBJrd0WCyX/oeR3ILiQlMFlKqriWsE/dblY4XJUJMcxB8fJG", 1301 "cXwr6zgwP+gw0SEiIhDZ0EILcwAULNAKk8hKuQ15twwQHUZFPuvEqDbCj5Guq0DXxR3PAXCZcvbBNLDk", 1302 "YCmD9q491wMa2w4ZAjmZFLPYW98p1rVMQW80bRPCRrK26+NhScH69jg3oykHLjpZ4bstVD62cgmzKo+4", 1303 "by7RV6LVlrRLU/nRVp4+NRHjRNKP5TqhAKMIy7dg8rE2uk/vv8bknC5/U5N9knO5zDIiK0hCFOhbt0FR", 1304 "nLeCZIl6az0sl1DHMIDnmYx01JGgKh3Ql3mjKAFZki8xGXLZFi8JZShQh8ySGUryNy70qmEgY8gcR6th", 1305 "zt26Rozr5E+/YkQCGjLUT5midKIc5SYRHE6vQp8LyorqC++BTTWpt4bK707Y3Miv3OEdJUGUq3BGOGZb", 1306 "0Ru5eStIIp1bjRMcChQpTFRkmqf6wDRLdCq6uMigiW/Jl6VmpZJR7r37uOMGrtVBCqVSF0GBpFmzFssQ", 1307 "56beZDQeVcUn7sW0WR+WFlHekHrByo3cJS3RV1sr4QtFUMEeNIkyMNIqxErN1yrEaUVCPonSxaGpLmgu", 1308 "FUuTs+RKZgxQY8bDi6WVUjUV0w1l08j9brBXuvT6BAr4WoaSRcLHzVoF5AVNDDfFeZJIREjIUIqIrmWG", 1309 "iaqPrQQIJslQR7ICoUd7NoSvib9zV5oM7bZfDt3uOi0RSCkgOTEHUBQnyAm6RknL9hilq6y9I5SSPxd+", 1310 "vkcf18bUSAuiNBmiew0Mpia8XdGXQSEQU7U02kb6gfENr+D63xOmYtn+EwbnDvyWJ4nhd6lMfBeXrdyF", 1311 "5MRSviQXtRNokMBk/W+XcFJ18sVoomuveJ7KKbPVmuMQJgCnRdK51NiGcbUGld6D/DOO63xvPWvRoVjo", 1312 "iUBD04whzidX15MMYsa7wTKjwdU1UKPd8DlWIRxzgUi47py/sGOYGMdcnejq+jfKpAWN1e29cjYAOc+Z", 1313 "VBZ14cgFdcEhp/MUYgnK4FIVDbT9gL1psX5gLHh7Zsyvgq85LVJ+NVcG8yugninwHftZrvRi9tY1u14+", 1314 "ECuGYFQvbjxsmjklD/oFuTshJSa6cYZMGgafW1HtjB6nrEApdC1+TOhSIiblz+BYZ8TqeQtDA4cLw/mR", 1315 "E0UDUT+KtrkIChD6uLB4QyoZFSzlOmu3QgSkCIlyAAKM3nC1sWZul5z6/TzrFKQc1eluBiVtt4GDX9kQ", 1316 "SpCKQkne3FfzqH2cFwW9zVgyZycSJk19UG5soTZ8Bb0W4upNYL3ZqaLsJAhV1XYe9aAfluqhV5D3pvIV", 1317 "dyWRz/adkZBtZvss98tj+iRTBQsowvoVg3m7Mtmei69JuGKU4H+XS6k5APoDhZqLpCfwNYdEYLWUu6w4", 1318 "SwZKdBORXrH20bB+u9Ad51XOgrrb2KKZ8RWraLW31sm8IYpiBSuE9F1RUz7rBkuYN4Yu4T7iMus1AG6C", 1319 "01jM5yz7cz1lNN2Z6eFXgxM9VXTZPuJo5B2rFWYHcTjbPzqY7L8In0/mc/R8Ao+eHUyOwtnixWH07GV8", 1320 "MDueT57PDueH+wfj2bPD54fRQWgNf3HwbH+yPzuIFvuHR1F0EB3PJ/PnM2dzpnolr9VsST2oSqp9b2a0", 1321 "TqBDt47ayulrx3mob/Nr8b4HlAlDCZROW/eVDWnNy3AtNHvcF8M244RbHYtuPE9T59ZzH14iNzEaHNBb", 1322 "nNyXJ7bh8G5DcVpVWOkLQbNMRQRV7elv5oqjM9PjzDL4y6V1OkNQ+1DaTm7wgdnXhkOnHqoJCv51qAz5", 1323 "eFi1Be+sMhvIl3a20pPJHoMbnEQhZFGRoq2nIReTX+95PtmqNvGdW4qqUK6dfhoAq3DC2lkpYZkLn50Q", 1324 "Hjtccc9DbkZEEdeXY0y+vMCYN7ZlfkcKDlzAZ5Eb5BneTsyRtesgaZUw76bpk6oN3E4t4F1K9LZUv+as", 1325 "WCtp4t11lGZSPryVK/QasRuGxWYJ8PIt7W0Ls0r5R//902rdftB9N8RjiBPVnIxftU8KOmrgnNfAS3Xa", 1326 "33ewUGDVpE7d1TQqeRgizj3gblZR3Z5r3KaGCyh9KflBWyEOV0N68UfuatjoGdZVtNIRbviLAdsbXa3o", 1327 "vX1qrplyUFgvQU2BIu9qodhXcnOH4sW+csVGg92Hb0HhbRG71R4UtyorKqQyTk5o6Ehbn7wDHzJEXn08", 1328 "Aycf3kiVy5LR8aivu+lEGs+JdmkxJabZqY4vYqpYHAuFeGuB4jj8eHQkCagSdxkiMMOj49GB+klqfLFS", 1329 "0E5hhqfX86nppDMtpjf+Utnk7ixSa736eFZvFKfKRbRmVfPtz2a6OWZ55QZmZf5v+i+uSxIrP6qzG7W7", 1330 "JZ2iesMsakWmNpHnaQrZenQscQBlSzoSU8DzcAUgB7U+dQIuudVDbvRZFe/7sNfKp0kAJYavabR+MNzb", 1331 "He9aSJtlwUKue/uE9yFXNKttxZ6T8LfjFj/qUh8+lCWr/n6Pw5iOfoJdZBmPDh8QjFaPSsfS2px3CIbV", 1332 "erwwXJtszPSb/kNFhLda/yVI+4GOnfoQxwkmSJPtvT5nzyCDKdK7/M/Wwb8FXhGTq8Y9UKxGhSEYWTCM", 1333 "bDWuSyZc+U1/h//PLcY5dPjhT2xHqaZro5H8oI0sHIaBElY1n3wcCXM0u9wxCbMa4G8kYWZjpt+MF7aR", 1334 "hBnvcYCE2eD5JcyC4ceWsPrnDDo3Mkr3CuCckvUWiRMa/tfFh/ceUaqDJecqb1y32S2iIVDLVVBFNGxA", 1335 "ZHzUDnD+dvnufBA4cmAPOCuhS4N84Oggr1/1VC1j+5hZyldx81b1cCgvsyme/pojtraYGotVUI5wMLG7", 1336 "5O527PiszRowJHKmm2rpyr6J6adTXApzgVBrI7MJDJ+3q30dXXodkmK3OkiKXtoNPmgOqfihiPFVjMZ9", 1337 "+29/dmFbzrbjyw6bO9zzB4OnzIk8eTunW5ICSKKimhUCgm7sXXdteFsHTL9ZJwv9Vu5EPSyZolMnLBO6", 1338 "UI3NcoK/5vX+HH6DVz/oGGTwvPej2wojpvqmLc0KSGDCTROxokOMSuiYcgqX6lBz3FNn7IDh1XwAYB9P", 1339 "jYfYkF3klcexadu0Jx36rOzdfujkRUN5KkCsPhfVti9dDNGXxtkZnvi8HbvnSuPf1hOhEtzb78MaT0wP", 1340 "mSwWvK9tm0b6A0kqCe53e8xnlHaLRftihidnWzSRH2BTqxZBHXuqv1b0c0u3uaWlG3rfHVUh2WbC+qno", 1341 "FPpjmhPXl99ujT3ZVc1QtWqMc6Kb/RbXXx+GwTZQHD84ezm+9bar3GWU1NaZq2xC1sFbVZfrH5e12p2+", 1342 "h7vBT5vTFAfUGhRvzkvWd9AHhNi6neuQZO0WWMffDG27AW69he2OHFAV/d508aovOTuUPabf9B9VBm8A", 1343 "s6ia76fHK+OOAl/P8hXuA5d31v9ulUvrvVF2i0l1/fPdebTs7zREg5UNEJ+ONey8OPMoZ0GND9jtCPvY", 1344 "X9mvmnk9hIclGCQ8Np/+97tXl2bYj55rbJez/llcrIIRSlVFAdRfptG1Aj3cpY94+jRT8f3OXgaSPA/5", 1345 "1WOefpt7U4t10UZSN9xzrVk8G2qwygaHXas65KO5bLOx5nij9LRlM7esalufaXUwoSJyYhp+Ph1FW0JV", 1346 "sbuuph9yvH+pO6Zt73Dfvi7wPY/2Xd8s3KFz/vKLffUdbqqzaUjJNWJF5W7X9uuB29z/ApQeFsCx5mHM", 1347 "ASZZLnSXe6NL9Rc/Cqx0v2fIr0wnJ/21CMrANQ4RuEaMw60yUQOl3WGjS1UgpahMTMts82EPGgPY/FpK", 1348 "i6h7AzivuDs2zKQWt8MeoZ51x1V7eTnvXjr+srrZtw1ZN3e6vp969wHwRPV5bWc3Ea6paTbTrdzP1KBH", 1349 "2vfmHdXN2WB/S/Dsjn423azuzhbfVLPSTWr4GtyxUXRs90t1hMUlLAODYl+j1Z2um/PfrG4q8MHGcne2", 1350 "afbDKfa2ve7acm+BXHXH+uem70xp2tB9b+nvu2ntp8oRXcXWCgZ0jQjAsfpeCOD5ogj7WNmr6Ge5tS/S", 1351 "H2AmdoYvHiFX+j20UyOIPPR1xusoqvbvfl9J9VNmgK1WUd8vwTj70ROMZXX1wASjZbI853NFD76iv+aQ", 1352 "dFCtbyffGUX26MURzjMW3R/f9GUf+Yoefh0+o26h3z2hGvPr45+Jt7ll507G1VmdXV0BSWS60ZofGM2F", 1353 "uYuGaxeL7y6Vg2vJyiqy12tJ61ckutsJ+g8ilD+r27r4213idm8u3rDkrSx2+8nSP4vwdlaWnJV4DyxK", 1354 "8r1FgjZMSSwSdCFYHoqc/ZSppyZTY39HWx/JCw4YTHP3V/t2P31fkzxusfimyZmfEvJTQubfJ1iqM9/u", 1355 "B0udYujPkpXpmZ+iuPHiP4ogPnyK0koKNuXwz1WLrSVuQ7PZ7bUK2FvnciHH/ICZ7xLvXb+Pqzb5jsnn", 1356 "YTeLrE/K7qCyL1ua73pt/Y5eYjLXKjT3bMadNOtVXjT7IXWXRnv3VRfN/JpLfXyEXRc7Wm8+v6b5XkRT", 1357 "iIlqPT+SpDYTuHXBqK/bfUTDwS3uTU/76dcch1cTpYEnuix1UnUFq+mYkcszU2hvF6obLFaTKLXgUcu2", 1358 "oSm6wJbjih9uP9/+XwAAAP//rLmSJF28AAA=", 1359 } 1360 1361 // GetSwagger returns the content of the embedded swagger specification file 1362 // or error if failed to decode 1363 func decodeSpec() ([]byte, error) { 1364 zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) 1365 if err != nil { 1366 return nil, fmt.Errorf("error base64 decoding spec: %s", err) 1367 } 1368 zr, err := gzip.NewReader(bytes.NewReader(zipped)) 1369 if err != nil { 1370 return nil, fmt.Errorf("error decompressing spec: %s", err) 1371 } 1372 var buf bytes.Buffer 1373 _, err = buf.ReadFrom(zr) 1374 if err != nil { 1375 return nil, fmt.Errorf("error decompressing spec: %s", err) 1376 } 1377 1378 return buf.Bytes(), nil 1379 } 1380 1381 var rawSpec = decodeSpecCached() 1382 1383 // a naive cached of a decoded swagger spec 1384 func decodeSpecCached() func() ([]byte, error) { 1385 data, err := decodeSpec() 1386 return func() ([]byte, error) { 1387 return data, err 1388 } 1389 } 1390 1391 // Constructs a synthetic filesystem for resolving external references when loading openapi specifications. 1392 func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { 1393 res := make(map[string]func() ([]byte, error)) 1394 if len(pathToFile) > 0 { 1395 res[pathToFile] = rawSpec 1396 } 1397 1398 return res 1399 } 1400 1401 // GetSwagger returns the Swagger specification corresponding to the generated code 1402 // in this file. The external references of Swagger specification are resolved. 1403 // The logic of resolving external references is tightly connected to "import-mapping" feature. 1404 // Externally referenced files must be embedded in the corresponding golang packages. 1405 // Urls can be supported but this task was out of the scope. 1406 func GetSwagger() (swagger *openapi3.T, err error) { 1407 resolvePath := PathToRawSpec("") 1408 1409 loader := openapi3.NewLoader() 1410 loader.IsExternalRefsAllowed = true 1411 loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { 1412 pathToFile := url.String() 1413 pathToFile = path.Clean(pathToFile) 1414 getSpec, ok := resolvePath[pathToFile] 1415 if !ok { 1416 err1 := fmt.Errorf("path not found: %s", pathToFile) 1417 return nil, err1 1418 } 1419 return getSpec() 1420 } 1421 var specData []byte 1422 specData, err = rawSpec() 1423 if err != nil { 1424 return 1425 } 1426 swagger, err = loader.LoadFromData(specData) 1427 if err != nil { 1428 return 1429 } 1430 return 1431 }