go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/common/api/luci_config/config/v1/config-api.json (about) 1 { 2 "auth": { 3 "oauth2": { 4 "scopes": { 5 "https://www.googleapis.com/auth/userinfo.email": { 6 "description": "https://www.googleapis.com/auth/userinfo.email" 7 } 8 } 9 } 10 }, 11 "basePath": "/_ah/api/config/v1", 12 "baseUrl": "https://luci-config.appspot.com/_ah/api/config/v1", 13 "batchPath": "batch", 14 "description": "API to access configurations.", 15 "discoveryVersion": "v1", 16 "icons": { 17 "x16": "https://www.google.com/images/icons/product/search-16.gif", 18 "x32": "https://www.google.com/images/icons/product/search-32.gif" 19 }, 20 "id": "config:v1", 21 "kind": "discovery#restDescription", 22 "methods": { 23 "get_config": { 24 "description": "Gets a config file.", 25 "httpMethod": "GET", 26 "id": "config.get_config", 27 "parameterOrder": [ 28 "config_set", 29 "path" 30 ], 31 "parameters": { 32 "config_set": { 33 "location": "path", 34 "required": true, 35 "type": "string" 36 }, 37 "hash_only": { 38 "location": "query", 39 "type": "boolean" 40 }, 41 "path": { 42 "location": "path", 43 "required": true, 44 "type": "string" 45 }, 46 "revision": { 47 "location": "query", 48 "type": "string" 49 }, 50 "use_zlib": { 51 "location": "query", 52 "type": "boolean" 53 } 54 }, 55 "path": "config_sets/{config_set}/config/{path}", 56 "response": { 57 "$ref": "LuciConfigGetConfigResponseMessage" 58 }, 59 "scopes": [ 60 "https://www.googleapis.com/auth/userinfo.email" 61 ] 62 }, 63 "get_config_by_hash": { 64 "description": "Gets a config file by its hash.", 65 "httpMethod": "GET", 66 "id": "config.get_config_by_hash", 67 "parameterOrder": [ 68 "content_hash" 69 ], 70 "parameters": { 71 "content_hash": { 72 "location": "path", 73 "required": true, 74 "type": "string" 75 } 76 }, 77 "path": "config/{content_hash}", 78 "response": { 79 "$ref": "LuciConfigGetConfigByHashResponseMessage" 80 }, 81 "scopes": [ 82 "https://www.googleapis.com/auth/userinfo.email" 83 ] 84 }, 85 "get_config_sets": { 86 "description": "Returns config sets.", 87 "httpMethod": "GET", 88 "id": "config.get_config_sets", 89 "parameters": { 90 "config_set": { 91 "location": "query", 92 "type": "string" 93 }, 94 "include_files": { 95 "location": "query", 96 "type": "boolean" 97 }, 98 "include_last_import_attempt": { 99 "location": "query", 100 "type": "boolean" 101 } 102 }, 103 "path": "config-sets", 104 "response": { 105 "$ref": "LuciConfigGetConfigSetsResponseMessage" 106 }, 107 "scopes": [ 108 "https://www.googleapis.com/auth/userinfo.email" 109 ] 110 }, 111 "get_mapping": { 112 "description": "DEPRECATED. Use get_config_sets.", 113 "httpMethod": "GET", 114 "id": "config.get_mapping", 115 "parameters": { 116 "config_set": { 117 "location": "query", 118 "type": "string" 119 } 120 }, 121 "path": "mapping", 122 "response": { 123 "$ref": "LuciConfigGetMappingResponseMessage" 124 }, 125 "scopes": [ 126 "https://www.googleapis.com/auth/userinfo.email" 127 ] 128 }, 129 "get_project_configs": { 130 "description": "Gets configs in all project config sets.", 131 "httpMethod": "GET", 132 "id": "config.get_project_configs", 133 "parameterOrder": [ 134 "path" 135 ], 136 "parameters": { 137 "hashes_only": { 138 "location": "query", 139 "type": "boolean" 140 }, 141 "path": { 142 "location": "path", 143 "required": true, 144 "type": "string" 145 } 146 }, 147 "path": "configs/projects/{path}", 148 "response": { 149 "$ref": "LuciConfigGetConfigMultiResponseMessage" 150 }, 151 "scopes": [ 152 "https://www.googleapis.com/auth/userinfo.email" 153 ] 154 }, 155 "get_projects": { 156 "description": "Gets list of registered projects. The project list is stored in services/luci-config:projects.cfg.", 157 "httpMethod": "GET", 158 "id": "config.get_projects", 159 "path": "projects", 160 "response": { 161 "$ref": "LuciConfigGetProjectsResponseMessage" 162 }, 163 "scopes": [ 164 "https://www.googleapis.com/auth/userinfo.email" 165 ] 166 }, 167 "get_ref_configs": { 168 "description": "Gets configs in all ref config sets.", 169 "httpMethod": "GET", 170 "id": "config.get_ref_configs", 171 "parameterOrder": [ 172 "path" 173 ], 174 "parameters": { 175 "hashes_only": { 176 "location": "query", 177 "type": "boolean" 178 }, 179 "path": { 180 "location": "path", 181 "required": true, 182 "type": "string" 183 } 184 }, 185 "path": "configs/refs/{path}", 186 "response": { 187 "$ref": "LuciConfigGetConfigMultiResponseMessage" 188 }, 189 "scopes": [ 190 "https://www.googleapis.com/auth/userinfo.email" 191 ] 192 }, 193 "get_refs": { 194 "description": "Gets list of refs of a project.", 195 "httpMethod": "GET", 196 "id": "config.get_refs", 197 "parameterOrder": [ 198 "project_id" 199 ], 200 "parameters": { 201 "project_id": { 202 "location": "path", 203 "required": true, 204 "type": "string" 205 } 206 }, 207 "path": "projects/{project_id}/refs", 208 "response": { 209 "$ref": "LuciConfigGetRefsResponseMessage" 210 }, 211 "scopes": [ 212 "https://www.googleapis.com/auth/userinfo.email" 213 ] 214 }, 215 "reimport": { 216 "description": "Reimports a config set.", 217 "httpMethod": "POST", 218 "id": "config.reimport", 219 "parameterOrder": [ 220 "config_set" 221 ], 222 "parameters": { 223 "config_set": { 224 "location": "query", 225 "required": true, 226 "type": "string" 227 } 228 }, 229 "path": "reimport", 230 "scopes": [ 231 "https://www.googleapis.com/auth/userinfo.email" 232 ] 233 }, 234 "validate_config": { 235 "httpMethod": "POST", 236 "id": "config.validate_config", 237 "path": "validate-config", 238 "request": { 239 "$ref": "LuciConfigValidateConfigRequestMessage", 240 "parameterName": "resource" 241 }, 242 "response": { 243 "$ref": "LuciConfigValidateConfigResponseMessage" 244 }, 245 "scopes": [ 246 "https://www.googleapis.com/auth/userinfo.email" 247 ] 248 } 249 }, 250 "name": "config", 251 "parameters": { 252 "alt": { 253 "default": "json", 254 "description": "Data format for the response.", 255 "enum": [ 256 "json" 257 ], 258 "enumDescriptions": [ 259 "Responses with Content-Type of application/json" 260 ], 261 "location": "query", 262 "type": "string" 263 }, 264 "fields": { 265 "description": "Selector specifying which fields to include in a partial response.", 266 "location": "query", 267 "type": "string" 268 }, 269 "key": { 270 "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", 271 "location": "query", 272 "type": "string" 273 }, 274 "oauth_token": { 275 "description": "OAuth 2.0 token for the current user.", 276 "location": "query", 277 "type": "string" 278 }, 279 "prettyPrint": { 280 "default": "true", 281 "description": "Returns response with indentations and line breaks.", 282 "location": "query", 283 "type": "boolean" 284 }, 285 "quotaUser": { 286 "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.", 287 "location": "query", 288 "type": "string" 289 }, 290 "userIp": { 291 "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.", 292 "location": "query", 293 "type": "string" 294 } 295 }, 296 "protocol": "rest", 297 "rootUrl": "https://luci-config.appspot.com/_ah/api/", 298 "schemas": { 299 "ComponentsConfigEndpointValidationMessage": { 300 "id": "ComponentsConfigEndpointValidationMessage", 301 "properties": { 302 "path": { 303 "type": "string" 304 }, 305 "severity": { 306 "enum": [ 307 "CRITICAL", 308 "DEBUG", 309 "ERROR", 310 "INFO", 311 "WARNING" 312 ], 313 "enumDescriptions": [ 314 "", 315 "", 316 "", 317 "", 318 "" 319 ], 320 "required": true, 321 "type": "string" 322 }, 323 "text": { 324 "required": true, 325 "type": "string" 326 } 327 }, 328 "type": "object" 329 }, 330 "LuciConfigConfigSet": { 331 "description": "Describes a config set.", 332 "id": "LuciConfigConfigSet", 333 "properties": { 334 "config_set": { 335 "required": true, 336 "type": "string" 337 }, 338 "files": { 339 "description": "Describes a file.", 340 "items": { 341 "$ref": "LuciConfigFile" 342 }, 343 "type": "array" 344 }, 345 "last_import_attempt": { 346 "$ref": "LuciConfigConfigSetImportAttempt" 347 }, 348 "location": { 349 "type": "string" 350 }, 351 "revision": { 352 "$ref": "LuciConfigRevision" 353 } 354 }, 355 "type": "object" 356 }, 357 "LuciConfigConfigSetImportAttempt": { 358 "id": "LuciConfigConfigSetImportAttempt", 359 "properties": { 360 "message": { 361 "type": "string" 362 }, 363 "revision": { 364 "$ref": "LuciConfigRevision" 365 }, 366 "success": { 367 "type": "boolean" 368 }, 369 "timestamp": { 370 "format": "int64", 371 "type": "string" 372 }, 373 "validation_messages": { 374 "items": { 375 "$ref": "ComponentsConfigEndpointValidationMessage" 376 }, 377 "type": "array" 378 } 379 }, 380 "type": "object" 381 }, 382 "LuciConfigFile": { 383 "description": "Describes a file.", 384 "id": "LuciConfigFile", 385 "properties": { 386 "path": { 387 "type": "string" 388 } 389 }, 390 "type": "object" 391 }, 392 "LuciConfigGetConfigByHashResponseMessage": { 393 "id": "LuciConfigGetConfigByHashResponseMessage", 394 "properties": { 395 "content": { 396 "format": "byte", 397 "required": true, 398 "type": "string" 399 } 400 }, 401 "type": "object" 402 }, 403 "LuciConfigGetConfigMultiResponseMessage": { 404 "id": "LuciConfigGetConfigMultiResponseMessage", 405 "properties": { 406 "configs": { 407 "items": { 408 "$ref": "LuciConfigGetConfigMultiResponseMessageConfigEntry" 409 }, 410 "type": "array" 411 } 412 }, 413 "type": "object" 414 }, 415 "LuciConfigGetConfigMultiResponseMessageConfigEntry": { 416 "id": "LuciConfigGetConfigMultiResponseMessageConfigEntry", 417 "properties": { 418 "config_set": { 419 "required": true, 420 "type": "string" 421 }, 422 "content": { 423 "format": "byte", 424 "type": "string" 425 }, 426 "content_hash": { 427 "required": true, 428 "type": "string" 429 }, 430 "revision": { 431 "required": true, 432 "type": "string" 433 }, 434 "url": { 435 "type": "string" 436 } 437 }, 438 "type": "object" 439 }, 440 "LuciConfigGetConfigResponseMessage": { 441 "id": "LuciConfigGetConfigResponseMessage", 442 "properties": { 443 "content": { 444 "format": "byte", 445 "type": "string" 446 }, 447 "content_hash": { 448 "required": true, 449 "type": "string" 450 }, 451 "is_zlib_compressed": { 452 "type": "boolean" 453 }, 454 "revision": { 455 "required": true, 456 "type": "string" 457 }, 458 "url": { 459 "type": "string" 460 } 461 }, 462 "type": "object" 463 }, 464 "LuciConfigGetConfigSetsResponseMessage": { 465 "id": "LuciConfigGetConfigSetsResponseMessage", 466 "properties": { 467 "config_sets": { 468 "description": "Describes a config set.", 469 "items": { 470 "$ref": "LuciConfigConfigSet" 471 }, 472 "type": "array" 473 } 474 }, 475 "type": "object" 476 }, 477 "LuciConfigGetMappingResponseMessage": { 478 "id": "LuciConfigGetMappingResponseMessage", 479 "properties": { 480 "mappings": { 481 "items": { 482 "$ref": "LuciConfigGetMappingResponseMessageMapping" 483 }, 484 "type": "array" 485 } 486 }, 487 "type": "object" 488 }, 489 "LuciConfigGetMappingResponseMessageMapping": { 490 "id": "LuciConfigGetMappingResponseMessageMapping", 491 "properties": { 492 "config_set": { 493 "required": true, 494 "type": "string" 495 }, 496 "location": { 497 "type": "string" 498 } 499 }, 500 "type": "object" 501 }, 502 "LuciConfigGetProjectsResponseMessage": { 503 "id": "LuciConfigGetProjectsResponseMessage", 504 "properties": { 505 "projects": { 506 "items": { 507 "$ref": "LuciConfigProject" 508 }, 509 "type": "array" 510 } 511 }, 512 "type": "object" 513 }, 514 "LuciConfigGetRefsResponseMessage": { 515 "id": "LuciConfigGetRefsResponseMessage", 516 "properties": { 517 "refs": { 518 "items": { 519 "$ref": "LuciConfigGetRefsResponseMessageRef" 520 }, 521 "type": "array" 522 } 523 }, 524 "type": "object" 525 }, 526 "LuciConfigGetRefsResponseMessageRef": { 527 "id": "LuciConfigGetRefsResponseMessageRef", 528 "properties": { 529 "name": { 530 "type": "string" 531 } 532 }, 533 "type": "object" 534 }, 535 "LuciConfigProject": { 536 "id": "LuciConfigProject", 537 "properties": { 538 "id": { 539 "required": true, 540 "type": "string" 541 }, 542 "name": { 543 "type": "string" 544 }, 545 "repo_type": { 546 "enum": [ 547 "GITILES" 548 ], 549 "enumDescriptions": [ 550 "" 551 ], 552 "required": true, 553 "type": "string" 554 }, 555 "repo_url": { 556 "required": true, 557 "type": "string" 558 } 559 }, 560 "type": "object" 561 }, 562 "LuciConfigRevision": { 563 "id": "LuciConfigRevision", 564 "properties": { 565 "committer_email": { 566 "type": "string" 567 }, 568 "id": { 569 "type": "string" 570 }, 571 "timestamp": { 572 "format": "int64", 573 "type": "string" 574 }, 575 "url": { 576 "type": "string" 577 } 578 }, 579 "type": "object" 580 }, 581 "LuciConfigValidateConfigRequestMessage": { 582 "id": "LuciConfigValidateConfigRequestMessage", 583 "properties": { 584 "config_set": { 585 "type": "string" 586 }, 587 "files": { 588 "items": { 589 "$ref": "LuciConfigValidateConfigRequestMessageFile" 590 }, 591 "type": "array" 592 } 593 }, 594 "type": "object" 595 }, 596 "LuciConfigValidateConfigRequestMessageFile": { 597 "id": "LuciConfigValidateConfigRequestMessageFile", 598 "properties": { 599 "content": { 600 "format": "byte", 601 "type": "string" 602 }, 603 "path": { 604 "type": "string" 605 } 606 }, 607 "type": "object" 608 }, 609 "LuciConfigValidateConfigResponseMessage": { 610 "id": "LuciConfigValidateConfigResponseMessage", 611 "properties": { 612 "messages": { 613 "items": { 614 "$ref": "ComponentsConfigEndpointValidationMessage" 615 }, 616 "type": "array" 617 } 618 }, 619 "type": "object" 620 } 621 }, 622 "servicePath": "config/v1/", 623 "title": "Configuration Service", 624 "version": "v1" 625 }