{
    "swagger":"2.0",
    "info":{
        "description":"Manage System Property",
        "version":"2022.10.18",
        "title":"REST API for System Property in OIG",
        "x-summary":"Manage System Property"
    },
    "basePath":"/iam/governance/api/v1/systemconfiguration",
    "securityDefinitions":{
        "basicAuth":{
            "type":"basic"
        }
    },
    "security":[
        {
            "basicAuth":[
            ]
        }
    ],
    "tags":[
        {
            "name":"System Property",
            "description":"This contains all the operations for System Property."
        }
    ],
    "schemes":[
        "https",
        "http"
    ],
    "paths":{
        "/":{
            "get":{
                "tags":[
                    "System Property"
                ],
                "summary":"Find all System Properties",
                "description":"Retrieves all system properties by providing the property name as URL parameters. Sorting and pagination are supported.",
                "operationId":"searchSystemPropertyWithQueryParams",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "name":"property",
                        "in":"query",
                        "description":"Property name that need to be searched.",
                        "required":false,
                        "type":"string"
                    },
                    {
                        "name":"offset",
                        "in":"query",
                        "description":"Pagination startindex from which results need to be returned.",
                        "required":false,
                        "type":"integer",
                        "format":"int32"
                    },
                    {
                        "name":"limit",
                        "in":"query",
                        "description":"Number of System Properties to be returned from startindex.",
                        "required":false,
                        "type":"integer",
                        "format":"int32"
                    },
                    {
                        "name":"orderBy",
                        "in":"query",
                        "description":"Attribute on which sorting needs to be done followed by colon and sort order.",
                        "required":false,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"successful operation.",
                        "schema":{
                            "type":"array",
                            "items":{
                                "$ref":"#/definitions/SystemProperty"
                            }
                        }
                    },
                    "400":{
                        "description":"Invalid input."
                    }
                },
                "x-internal-id":"get",
                "x-filename-id":"get"
            }
        },
        "/systemproperty":{
            "post":{
                "tags":[
                    "System Property"
                ],
                "summary":"Create a new System Property",
                "description":"Creates a new System Property in OIG.",
                "operationId":"createSystemProperty",
                "consumes":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"body",
                        "name":"body",
                        "description":"System Property details for new property to be created.",
                        "required":false,
                        "schema":{
                            "$ref":"#/definitions/SystemPropertyBody"
                        }
                    }
                ],
                "responses":{
                    "201":{
                        "description":"successful operation.",
                        "schema":{
                            "$ref":"#/definitions/ReturnedId"
                        }
                    },
                    "400":{
                        "description":"Invalid input."
                    }
                },
                "x-internal-id":"systemproperty-post",
                "x-filename-id":"systemproperty-post"
            },
            "put":{
                "tags":[
                    "System Property"
                ],
                "summary":"Update a System Property",
                "description":"Updates existing System Property in OIG.",
                "operationId":"updateSystemProperty",
                "consumes":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"body",
                        "name":"body",
                        "description":"System Property details to update an already existing property.",
                        "required":false,
                        "schema":{
                            "$ref":"#/definitions/SystemPropertyBody"
                        }
                    }
                ],
                "responses":{
                    "204":{
                        "description":"successful operation.",
                        "schema":{
                            "$ref":"#/definitions/ReturnedId"
                        }
                    },
                    "400":{
                        "description":"Invalid input."
                    }
                },
                "x-internal-id":"systemproperty-put",
                "x-filename-id":"systemproperty-put"
            }
        },
        "/systemproperty/{keyword}":{
            "get":{
                "tags":[
                    "System Property"
                ],
                "summary":"Fetch a System Property",
                "description":"Fetches a particular System Property with the specified keyword.",
                "operationId":"getSystemProperty",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"keyword",
                        "description":"Get a particular System Property by its keyword.",
                        "required":true,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"successful operation.",
                        "schema":{
                            "$ref":"#/definitions/SystemProperty"
                        }
                    },
                    "400":{
                        "description":"Invalid input."
                    }
                },
                "x-internal-id":"systemproperty-{keyword}-get",
                "x-filename-id":"systemproperty-keyword-get"
            },
            "delete":{
                "tags":[
                    "System Property"
                ],
                "summary":"Delete a System Property",
                "description":"Deletes a particular System Property with the specified keyword.",
                "operationId":"deleteSystemProperty",
                "produces":[
                    "application/json"
                ],
                "parameters":[
                    {
                        "in":"path",
                        "name":"keyword",
                        "description":"System Property keyword.",
                        "required":true,
                        "type":"string"
                    }
                ],
                "responses":{
                    "200":{
                        "description":"successful operation.",
                        "schema":{
                            "$ref":"#/definitions/ReturnedId"
                        }
                    },
                    "400":{
                        "description":"Invalid input."
                    }
                },
                "x-internal-id":"systemproperty-{keyword}-delete",
                "x-filename-id":"systemproperty-keyword-delete"
            }
        }
    },
    "definitions":{
        "SystemProperty":{
            "type":"object",
            "properties":{
                "id":{
                    "type":"string",
                    "description":"Id of system property."
                },
                "ptyKeyword":{
                    "type":"string",
                    "description":"Keyword of system property."
                },
                "ptyValue":{
                    "type":"string",
                    "description":"Value of system property."
                },
                "ptyName":{
                    "type":"string",
                    "description":"Name of system property."
                },
                "ptyDataLevel":{
                    "type":"string",
                    "description":"Property data level of system property."
                }
            }
        },
        "SystemPropertyBody":{
            "type":"object",
            "properties":{
                "ptyKeyword":{
                    "type":"string",
                    "description":"Property keyword for new system property."
                },
                "ptyValue":{
                    "type":"string",
                    "description":"Property value for new system property."
                },
                "ptyName":{
                    "type":"string",
                    "description":"Property name for new system property."
                }
            }
        },
        "ReturnedId":{
            "type":"object",
            "properties":{
                "id":{
                    "type":"string",
                    "description":"Id of system property."
                }
            }
        }
    }
}