github.com/openshift-online/ocm-sdk-go@v0.1.473/openapi/service_mgmt/v1/openapi.json (about) 1 { 2 "openapi": "3.0.0", 3 "info": { 4 "version": "v1", 5 "title": "service_mgmt", 6 "license": { 7 "name": "Apache 2.0", 8 "url": "http://www.apache.org/licenses/LICENSE-2.0" 9 }, 10 "contact": { 11 "name": "OCM Feedback", 12 "email": "ocm-feedback@redhat.com" 13 } 14 }, 15 "servers": [ 16 { 17 "description": "Production", 18 "url": "https://api.openshift.com" 19 }, 20 { 21 "description": "Stage", 22 "url": "https://api.stage.openshift.com" 23 } 24 ], 25 "paths": { 26 "/api/service_mgmt/v1": { 27 "get": { 28 "description": "Retrieves the version metadata.", 29 "responses": { 30 "200": { 31 "description": "Success.", 32 "content": { 33 "application/json": { 34 "schema": { 35 "$ref": "#/components/schemas/Metadata" 36 } 37 } 38 } 39 }, 40 "default": { 41 "description": "Error.", 42 "content": { 43 "application/json": { 44 "schema": { 45 "$ref": "#/components/schemas/Error" 46 } 47 } 48 } 49 } 50 } 51 } 52 }, 53 "/api/service_mgmt/v1/services": { 54 "post": { 55 "description": "Creates a new Managed Service", 56 "requestBody": { 57 "content": { 58 "application/json": { 59 "schema": { 60 "$ref": "#/components/schemas/ManagedService" 61 } 62 } 63 } 64 }, 65 "responses": { 66 "201": { 67 "description": "Success.", 68 "content": { 69 "application/json": { 70 "schema": { 71 "$ref": "#/components/schemas/ManagedService" 72 } 73 } 74 } 75 }, 76 "default": { 77 "description": "Error.", 78 "content": { 79 "application/json": { 80 "schema": { 81 "$ref": "#/components/schemas/Error" 82 } 83 } 84 } 85 } 86 } 87 }, 88 "get": { 89 "description": "Lists the Managed Services the user has running", 90 "parameters": [ 91 { 92 "name": "page", 93 "description": "Index of the requested page, where one corresponds to the first page.", 94 "in": "query", 95 "schema": { 96 "type": "integer", 97 "format": "int32" 98 } 99 }, 100 { 101 "name": "size", 102 "description": "Maximum number of items that will be contained in the returned page.", 103 "in": "query", 104 "schema": { 105 "type": "integer", 106 "format": "int32" 107 } 108 } 109 ], 110 "responses": { 111 "200": { 112 "description": "Success.", 113 "content": { 114 "application/json": { 115 "schema": { 116 "type": "object", 117 "properties": { 118 "items": { 119 "description": "Retrieved list of clusters.", 120 "type": "array", 121 "items": { 122 "$ref": "#/components/schemas/ManagedService" 123 } 124 }, 125 "page": { 126 "description": "Index of the requested page, where one corresponds to the first page.", 127 "type": "integer", 128 "format": "int32" 129 }, 130 "size": { 131 "description": "Maximum number of items that will be contained in the returned page.", 132 "type": "integer", 133 "format": "int32" 134 }, 135 "total": { 136 "description": "Total number of items of the collection that match the search criteria,\nregardless of the size of the page.", 137 "type": "integer", 138 "format": "int32" 139 } 140 } 141 } 142 } 143 } 144 }, 145 "default": { 146 "description": "Error.", 147 "content": { 148 "application/json": { 149 "schema": { 150 "$ref": "#/components/schemas/Error" 151 } 152 } 153 } 154 } 155 } 156 } 157 }, 158 "/api/service_mgmt/v1/services/version_inquiry": { 159 "post": { 160 "description": "Returns the Openshift version a service of this type will use.", 161 "requestBody": { 162 "content": { 163 "application/json": { 164 "schema": { 165 "$ref": "#/components/schemas/VersionInquiryRequest" 166 } 167 } 168 } 169 }, 170 "responses": { 171 "201": { 172 "description": "Success.", 173 "content": { 174 "application/json": { 175 "schema": { 176 "$ref": "#/components/schemas/VersionInquiryResponse" 177 } 178 } 179 } 180 }, 181 "default": { 182 "description": "Error.", 183 "content": { 184 "application/json": { 185 "schema": { 186 "$ref": "#/components/schemas/Error" 187 } 188 } 189 } 190 } 191 } 192 } 193 }, 194 "/api/service_mgmt/v1/services/{service_id}": { 195 "delete": { 196 "description": "Deletes the Managed Service", 197 "parameters": [ 198 { 199 "name": "service_id", 200 "in": "path", 201 "schema": { 202 "type": "string" 203 }, 204 "required": true 205 } 206 ], 207 "responses": { 208 "204": { 209 "description": "Success." 210 }, 211 "default": { 212 "description": "Error.", 213 "content": { 214 "application/json": { 215 "schema": { 216 "$ref": "#/components/schemas/Error" 217 } 218 } 219 } 220 } 221 } 222 }, 223 "get": { 224 "description": "Gets information on the Managed Service", 225 "parameters": [ 226 { 227 "name": "service_id", 228 "in": "path", 229 "schema": { 230 "type": "string" 231 }, 232 "required": true 233 } 234 ], 235 "responses": { 236 "200": { 237 "description": "Success.", 238 "content": { 239 "application/json": { 240 "schema": { 241 "$ref": "#/components/schemas/ManagedService" 242 } 243 } 244 } 245 }, 246 "default": { 247 "description": "Error.", 248 "content": { 249 "application/json": { 250 "schema": { 251 "$ref": "#/components/schemas/Error" 252 } 253 } 254 } 255 } 256 } 257 }, 258 "patch": { 259 "parameters": [ 260 { 261 "name": "service_id", 262 "in": "path", 263 "schema": { 264 "type": "string" 265 }, 266 "required": true 267 } 268 ], 269 "requestBody": { 270 "content": { 271 "application/json": { 272 "schema": { 273 "$ref": "#/components/schemas/ManagedService" 274 } 275 } 276 } 277 }, 278 "responses": { 279 "200": { 280 "description": "Success.", 281 "content": { 282 "application/json": { 283 "schema": { 284 "$ref": "#/components/schemas/ManagedService" 285 } 286 } 287 } 288 }, 289 "default": { 290 "description": "Error.", 291 "content": { 292 "application/json": { 293 "schema": { 294 "$ref": "#/components/schemas/Error" 295 } 296 } 297 } 298 } 299 } 300 } 301 } 302 }, 303 "components": { 304 "schemas": { 305 "Metadata": { 306 "description": "Version metadata.", 307 "properties": { 308 "server_version": { 309 "description": "Version of the server.", 310 "type": "string" 311 } 312 } 313 }, 314 "AWS": { 315 "description": "_Amazon Web Services_ specific settings of a cluster.", 316 "properties": { 317 "sts": { 318 "description": "Contains the necessary attributes to support role-based authentication on AWS.", 319 "$ref": "#/components/schemas/STS" 320 }, 321 "access_key_id": { 322 "description": "AWS access key identifier.", 323 "type": "string" 324 }, 325 "account_id": { 326 "description": "AWS account identifier.", 327 "type": "string" 328 }, 329 "private_link": { 330 "description": "For PrivateLink-enabled clusters", 331 "type": "boolean" 332 }, 333 "secret_access_key": { 334 "description": "AWS secret access key.", 335 "type": "string" 336 }, 337 "subnet_ids": { 338 "description": "The subnet ids to be used when installing the cluster.", 339 "type": "array", 340 "items": { 341 "type": "string" 342 } 343 }, 344 "tags": { 345 "description": "Optional keys and values that the installer will add as tags to all AWS resources it creates", 346 "type": "object", 347 "additionalProperties": { 348 "type": "string" 349 } 350 } 351 } 352 }, 353 "STS": { 354 "description": "Contains the necessary attributes to support role-based authentication on AWS.", 355 "properties": { 356 "oidc_endpoint_url": { 357 "description": "URL of the location where OIDC configuration and keys are available", 358 "type": "string" 359 }, 360 "instance_iam_roles": { 361 "description": "Instance IAM roles to use for the instance profiles of the master and worker instances", 362 "$ref": "#/components/schemas/InstanceIAMRoles" 363 }, 364 "operator_iam_roles": { 365 "description": "List of roles necessary to access the AWS resources of the various operators used during installation", 366 "type": "array", 367 "items": { 368 "$ref": "#/components/schemas/OperatorIAMRole" 369 } 370 }, 371 "operator_role_prefix": { 372 "type": "string" 373 }, 374 "role_arn": { 375 "description": "ARN of the AWS role to assume when installing the cluster", 376 "type": "string" 377 }, 378 "support_role_arn": { 379 "description": "ARN of the AWS role used by SREs to access the cluster AWS account in order to provide support", 380 "type": "string" 381 } 382 } 383 }, 384 "CloudRegion": { 385 "description": "Description of a region of a cloud provider.", 386 "properties": { 387 "id": { 388 "description": "Human-friendly identifier of the region, for example `us-east-1`.", 389 "type": "string" 390 } 391 } 392 }, 393 "Cluster": { 394 "description": "This represents the parameters needed by Managed Service to create a cluster.", 395 "properties": { 396 "api": { 397 "$ref": "#/components/schemas/ClusterAPI" 398 }, 399 "aws": { 400 "$ref": "#/components/schemas/AWS" 401 }, 402 "display_name": { 403 "description": "DisplayName is the name of the cluster for display purposes.\nIt can contain spaces.", 404 "type": "string" 405 }, 406 "href": { 407 "type": "string" 408 }, 409 "id": { 410 "type": "string" 411 }, 412 "multi_az": { 413 "description": "Flag indicating if the cluster should be created with nodes in\ndifferent availability zones or all the nodes in a single one\nrandomly selected.", 414 "type": "boolean" 415 }, 416 "name": { 417 "type": "string" 418 }, 419 "network": { 420 "$ref": "#/components/schemas/Network" 421 }, 422 "nodes": { 423 "$ref": "#/components/schemas/ClusterNodes" 424 }, 425 "properties": { 426 "type": "object", 427 "additionalProperties": { 428 "type": "string" 429 } 430 }, 431 "region": { 432 "$ref": "#/components/schemas/CloudRegion" 433 }, 434 "state": { 435 "type": "string" 436 } 437 } 438 }, 439 "ClusterAPI": { 440 "description": "Information about the API of a cluster.", 441 "properties": { 442 "listening": { 443 "description": "The listening method of the API server.", 444 "$ref": "#/components/schemas/ListeningMethod" 445 } 446 } 447 }, 448 "ClusterNodes": { 449 "properties": { 450 "availability_zones": { 451 "type": "array", 452 "items": { 453 "type": "string" 454 } 455 } 456 } 457 }, 458 "InstanceIAMRoles": { 459 "description": "Contains the necessary attributes to support role-based authentication on AWS.", 460 "properties": { 461 "master_role_arn": { 462 "description": "The IAM role ARN that will be attached to master instances", 463 "type": "string" 464 }, 465 "worker_role_arn": { 466 "description": "The IAM role ARN that will be attached to worker instances", 467 "type": "string" 468 } 469 } 470 }, 471 "ListeningMethod": { 472 "description": "Cluster components listening method.", 473 "type": "string", 474 "enum": [ 475 "external", 476 "internal" 477 ] 478 }, 479 "ManagedService": { 480 "description": "Represents data about a running Managed Service.", 481 "properties": { 482 "kind": { 483 "description": "Indicates the type of this object. Will be 'ManagedService' if this is a complete object or 'ManagedServiceLink' if it is just a link.", 484 "type": "string" 485 }, 486 "id": { 487 "description": "Unique identifier of the object.", 488 "type": "string" 489 }, 490 "href": { 491 "description": "Self link.", 492 "type": "string" 493 }, 494 "addon": { 495 "$ref": "#/components/schemas/StatefulObject" 496 }, 497 "cluster": { 498 "$ref": "#/components/schemas/Cluster" 499 }, 500 "created_at": { 501 "type": "string", 502 "format": "date-time" 503 }, 504 "expired_at": { 505 "type": "string", 506 "format": "date-time" 507 }, 508 "parameters": { 509 "type": "array", 510 "items": { 511 "$ref": "#/components/schemas/ServiceParameter" 512 } 513 }, 514 "resources": { 515 "type": "array", 516 "items": { 517 "$ref": "#/components/schemas/StatefulObject" 518 } 519 }, 520 "service": { 521 "type": "string" 522 }, 523 "service_state": { 524 "type": "string" 525 }, 526 "updated_at": { 527 "type": "string", 528 "format": "date-time" 529 } 530 } 531 }, 532 "Network": { 533 "description": "Network configuration of a cluster.", 534 "properties": { 535 "host_prefix": { 536 "description": "Network host prefix which is defaulted to `23` if not specified.", 537 "type": "integer", 538 "format": "int32" 539 }, 540 "machine_cidr": { 541 "description": "IP address block from which to assign machine IP addresses, for example `10.0.0.0/16`.", 542 "type": "string" 543 }, 544 "pod_cidr": { 545 "description": "IP address block from which to assign pod IP addresses, for example `10.128.0.0/14`.", 546 "type": "string" 547 }, 548 "service_cidr": { 549 "description": "IP address block from which to assign service IP addresses, for example `172.30.0.0/16`.", 550 "type": "string" 551 }, 552 "type": { 553 "description": "The main controller responsible for rendering the core networking components.", 554 "type": "string" 555 } 556 } 557 }, 558 "OperatorIAMRole": { 559 "description": "Contains the necessary attributes to allow each operator to access the necessary AWS resources", 560 "properties": { 561 "name": { 562 "description": "Name of the operator", 563 "type": "string" 564 }, 565 "namespace": { 566 "description": "Namespace where the operator lives in the cluster", 567 "type": "string" 568 }, 569 "role_arn": { 570 "description": "Role to assume when accessing AWS resources", 571 "type": "string" 572 } 573 } 574 }, 575 "ServiceParameter": { 576 "properties": { 577 "id": { 578 "description": "Name of the parameter", 579 "type": "string" 580 }, 581 "value": { 582 "description": "Value of the parameter", 583 "type": "string" 584 } 585 } 586 }, 587 "StatefulObject": { 588 "properties": { 589 "id": { 590 "type": "string" 591 }, 592 "href": { 593 "type": "string" 594 }, 595 "kind": { 596 "type": "string" 597 }, 598 "state": { 599 "type": "string" 600 } 601 } 602 }, 603 "VersionInquiryRequest": { 604 "properties": { 605 "service_type": { 606 "type": "string" 607 } 608 } 609 }, 610 "VersionInquiryResponse": { 611 "properties": { 612 "version": { 613 "type": "string" 614 } 615 } 616 }, 617 "Error": { 618 "type": "object", 619 "properties": { 620 "kind": { 621 "description": "Indicates the type of this object. Will always be 'Error'", 622 "type": "string" 623 }, 624 "id": { 625 "description": "Numeric identifier of the error.", 626 "type": "integer", 627 "format": "int32" 628 }, 629 "href": { 630 "description": "Self link.", 631 "type": "string" 632 }, 633 "code": { 634 "description": "Globally unique code of the error, composed of the unique identifier of the API and the numeric identifier of the error. For example, for if the numeric identifier of the error is `93` and the identifier of the API is `clusters_mgmt` then the code will be `CLUSTERS-MGMT-93`.", 635 "type": "string" 636 }, 637 "reason": { 638 "description": "Human readable description of the error.", 639 "type": "string" 640 }, 641 "details": { 642 "description": "Extra information about the error.", 643 "type": "object", 644 "additionalProperties": true 645 } 646 } 647 } 648 }, 649 "securitySchemes": { 650 "bearer": { 651 "type": "http", 652 "scheme": "bearer", 653 "bearerFormat": "JWT" 654 } 655 } 656 }, 657 "security": [ 658 { 659 "bearer": [ 660 661 ] 662 } 663 ] 664 }