{
  "openapi" : "3.0.1",
  "info" : {
    "contact" : {
      "email" : "onap-discuss@lists.onap.org",
      "name" : "ONAP",
      "url" : "https://onap.readthedocs.io"
    },
    "description" : "SDC API for certifying services (SDCE-4)",
    "license" : {
      "name" : "Apache 2.0",
      "url" : "http://www.apache.org/licenses/LICENSE-2.0"
    },
    "title" : "SPC API: SDCE-4",
    "version" : "1.0"
  },
  "servers" : [ {
    "description" : "SDCE-4 APIs",
    "url" : "/sdc"
  } ],
  "paths" : {
    "/v1/catalog/{componentCollection}/{componentId}/lifecycleState/{lifecycleOperation}" : {
      "post" : {
        "description" : "Change Resource lifecycle State",
        "operationId" : "changeResourceState",
        "parameters" : [ {
          "description" : "validValues: resources / services / products",
          "in" : "path",
          "name" : "componentCollection",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "resources", "services", "products" ]
          }
        }, {
          "in" : "path",
          "name" : "lifecycleOperation",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum" : [ "checkout, undoCheckout, checkin, certificationRequest, startCertification, failCertification,  cancelCertification, certify" ]
          }
        }, {
          "description" : "id of component to be changed",
          "in" : "path",
          "name" : "componentId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "id of user initiating the operation",
          "in" : "header",
          "name" : "USER_ID",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "string"
              }
            }
          },
          "description" : "LifecycleChangeInfo - relevant for checkin, failCertification, cancelCertification"
        },
        "responses" : {
          "200" : {
            "description" : "Resource state changed"
          },
          "403" : {
            "description" : "Restricted operation"
          },
          "409" : {
            "description" : "Resource already exist"
          },
          "default" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "type" : "object",
                    "properties" : {
                      "allowedMethods" : {
                        "type" : "array",
                        "items" : {
                          "type" : "string"
                        },
                        "uniqueItems" : true
                      },
                      "cookies" : {
                        "type" : "object",
                        "additionalProperties" : {
                          "type" : "object",
                          "properties" : {
                            "comment" : {
                              "type" : "string"
                            },
                            "domain" : {
                              "type" : "string"
                            },
                            "expiry" : {
                              "type" : "string",
                              "format" : "date-time"
                            },
                            "httpOnly" : {
                              "type" : "boolean"
                            },
                            "maxAge" : {
                              "type" : "integer",
                              "format" : "int32"
                            },
                            "name" : {
                              "type" : "string"
                            },
                            "path" : {
                              "type" : "string"
                            },
                            "secure" : {
                              "type" : "boolean"
                            },
                            "value" : {
                              "type" : "string"
                            },
                            "version" : {
                              "type" : "integer",
                              "format" : "int32"
                            }
                          }
                        }
                      },
                      "date" : {
                        "type" : "string",
                        "format" : "date-time"
                      },
                      "entity" : {
                        "type" : "object"
                      },
                      "entityTag" : {
                        "type" : "object",
                        "properties" : {
                          "value" : {
                            "type" : "string"
                          },
                          "weak" : {
                            "type" : "boolean"
                          }
                        }
                      },
                      "headers" : {
                        "type" : "object",
                        "additionalProperties" : {
                          "type" : "array",
                          "items" : {
                            "type" : "object"
                          }
                        }
                      },
                      "language" : {
                        "type" : "object",
                        "properties" : {
                          "country" : {
                            "type" : "string"
                          },
                          "displayCountry" : {
                            "type" : "string"
                          },
                          "displayLanguage" : {
                            "type" : "string"
                          },
                          "displayName" : {
                            "type" : "string"
                          },
                          "displayScript" : {
                            "type" : "string"
                          },
                          "displayVariant" : {
                            "type" : "string"
                          },
                          "extensionKeys" : {
                            "type" : "array",
                            "items" : {
                              "type" : "string"
                            },
                            "uniqueItems" : true
                          },
                          "iso3Country" : {
                            "type" : "string"
                          },
                          "iso3Language" : {
                            "type" : "string"
                          },
                          "language" : {
                            "type" : "string"
                          },
                          "script" : {
                            "type" : "string"
                          },
                          "unicodeLocaleAttributes" : {
                            "type" : "array",
                            "items" : {
                              "type" : "string"
                            },
                            "uniqueItems" : true
                          },
                          "unicodeLocaleKeys" : {
                            "type" : "array",
                            "items" : {
                              "type" : "string"
                            },
                            "uniqueItems" : true
                          },
                          "variant" : {
                            "type" : "string"
                          }
                        }
                      },
                      "lastModified" : {
                        "type" : "string",
                        "format" : "date-time"
                      },
                      "length" : {
                        "type" : "integer",
                        "format" : "int32"
                      },
                      "links" : {
                        "type" : "array",
                        "items" : {
                          "type" : "object",
                          "properties" : {
                            "params" : {
                              "type" : "object",
                              "additionalProperties" : {
                                "type" : "string"
                              }
                            },
                            "rel" : {
                              "type" : "string"
                            },
                            "rels" : {
                              "type" : "array",
                              "items" : {
                                "type" : "string"
                              }
                            },
                            "title" : {
                              "type" : "string"
                            },
                            "type" : {
                              "type" : "string"
                            },
                            "uri" : {
                              "type" : "string",
                              "format" : "uri"
                            },
                            "uriBuilder" : {
                              "type" : "object"
                            }
                          }
                        },
                        "uniqueItems" : true
                      },
                      "location" : {
                        "type" : "string",
                        "format" : "uri"
                      },
                      "mediaType" : {
                        "type" : "object",
                        "properties" : {
                          "parameters" : {
                            "type" : "object",
                            "additionalProperties" : {
                              "type" : "string"
                            }
                          },
                          "subtype" : {
                            "type" : "string"
                          },
                          "type" : {
                            "type" : "string"
                          },
                          "wildcardSubtype" : {
                            "type" : "boolean"
                          },
                          "wildcardType" : {
                            "type" : "boolean"
                          }
                        }
                      },
                      "metadata" : {
                        "type" : "object",
                        "additionalProperties" : {
                          "type" : "array",
                          "items" : {
                            "type" : "object"
                          }
                        }
                      },
                      "status" : {
                        "type" : "integer",
                        "format" : "int32"
                      },
                      "statusInfo" : {
                        "type" : "object",
                        "properties" : {
                          "family" : {
                            "type" : "string",
                            "enum" : [ "INFORMATIONAL", "SUCCESSFUL", "REDIRECTION", "CLIENT_ERROR", "SERVER_ERROR", "OTHER" ]
                          },
                          "reasonPhrase" : {
                            "type" : "string"
                          },
                          "statusCode" : {
                            "type" : "integer",
                            "format" : "int32"
                          }
                        }
                      },
                      "stringHeaders" : {
                        "type" : "object",
                        "additionalProperties" : {
                          "type" : "array",
                          "items" : {
                            "type" : "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "servers" : [ {
          "url" : "/sdc2/rest",
          "variables" : { }
        } ],
        "tags" : [ "SDCE-4 APIs" ]
      }
    }
  }
}