{
    "name" : "WebDAV Client",
    "description" : "WebDAV REST API client",
    "operations" : {
        "Open" : {
            "httpMethod" : "GET",
            "uri" : "{path/basepath}/{path/fullpath}",
            "summary" : "Open the object as a stream for the StreamWrapper to access",
            "responseClass" : "OpenOutput",
            "parameters" : {
                "path/fullpath" : {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "path/basepath": {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                }
            }
        },
        "Mkdir" : {
            "httpMethod" : "MKCOL",
            "uri" : "{path/basepath}/{path/fullpath}",
            "responseClass" : "MkdirOutput",
            "parameters" : {
                "path/fullpath" : {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "path/basepath": {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                }
            }
        },
        "Rmdir" : {
            "httpMethod" : "DELETE",
            "uri" : "{path/basepath}/{path/fullpath}",
            "responseClass" : "RmdirOutput",
            "parameters" : {
                "path/fullpath":  {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "path/basepath": {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                }
            }
        },
        "Rename" : {
            "httpMethod" : "MOVE",
            "uri" : "{frompath/basepath}/{frompath/fullpath}",
            "responseClass" : "MoveOutput",
            "parameters" : {
                "frompath/fullpath":  {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "frompath/basepath": {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "topath/fulluri" : {
                    "required" : true,
                    "type" : "string",
                    "location" : "header",
                    "sentAs" : "Destination"
                }
            }
        },
        "Put" : {
            "httpMethod" : "PUT",
            "uri" : "{path/basepath}/{path/fullpath}",
            "responseClass" : "PutOutput",
            "parameters" : {
                "path/fullpath":  {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "path/basepath": {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "body" : {
                    "location" : "body"
                }
            }
        },
        "Delete" : {
            "httpMethod": "DELETE",
            "uri" : "{path/basepath}/{path/fullpath}",
            "responseClass": "DeleteOutput",
            "parameters": {
                "path/fullpath":  {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                },
                "path/basepath": {
                    "required" : true,
                    "type" : "string",
                    "location" : "uri"
                }
            }
        }
    },
    "models" : {
        "OpenOutput" : {
            "type" : "object"
        },
        "StatOutput" : {
            "type" : "object"
        },
        "MkdirOutput" : {
            "type" : "object"
        },
        "RmdirOutput" : {
            "type" : "object"
        },
        "MoveOutput" : {
            "type": "object"
        },
        "PutOutput": {
            "type" : "object"
        },
        "DeleteOutput": {
            "type" : "object"
        }
    }
}
