{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "",
        "title": "Golang 2025 Final Project",
        "termsOfService": "http://swagger.io/terms",
        "contact": {},
        "license": {
            "name": "0BSD"
        },
        "version": "0.0.1"
    },
    "host": "",
    "basePath": "/",
    "paths": {
        "/api/alias/{id}": {
            "delete": {
                "description": "delete alias along with the links",
                "summary": "Delete alias",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Alias Id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/aliases": {
            "get": {
                "description": "get alias ids and names",
                "summary": "Get aliases",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.getAliasesOutputAlias"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/api/image": {
            "post": {
                "consumes": [
                    "image/png",
                    "image/jpeg",
                    "image/gif"
                ],
                "parameters": [
                    {
                        "type": "string",
                        "description": "userinfo from /auth/gen-login-url",
                        "name": "userinfo",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/api/image/{id}": {
            "delete": {
                "description": "delete image along with the links",
                "summary": "Delete image",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Image Id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/image/{id}/aliases": {
            "put": {
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Image Id",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/api.putImageAliasesInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/images": {
            "get": {
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Image Ids",
                        "name": "images",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "collectionFormat": "csv",
                        "description": "Alias Ids",
                        "name": "aliases",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/api.getImagesOutputImage"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/auth/gen-login-url": {
            "post": {
                "parameters": [
                    {
                        "description": "Payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/auth.postGenLoginUrlInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payload",
                        "schema": {
                            "$ref": "#/definitions/auth.postGenLoginUrlOutput"
                        }
                    },
                    "400": {
                        "description": "Bad Request"
                    }
                }
            }
        },
        "/auth/login": {
            "post": {
                "parameters": [
                    {
                        "description": "payload",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/auth.postLoginInput"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "definitions": {
        "api.getAliasesOutputAlias": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "api.getImagesOutputImage": {
            "type": "object",
            "properties": {
                "aliasesIds": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "id": {
                    "type": "integer"
                },
                "uploadedAt": {
                    "type": "integer"
                },
                "uploadedUserId": {
                    "type": "string"
                }
            }
        },
        "api.putImageAliasesInput": {
            "type": "object",
            "properties": {
                "aliases": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "auth.postGenLoginUrlInput": {
            "type": "object",
            "properties": {
                "userId": {
                    "type": "string"
                }
            }
        },
        "auth.postGenLoginUrlOutput": {
            "type": "object",
            "properties": {
                "loginUrl": {
                    "type": "string"
                }
            }
        },
        "auth.postLoginInput": {
            "type": "object",
            "properties": {
                "token": {
                    "type": "string"
                }
            }
        }
    }
}