// Package docs Code generated by swaggo/swag. DO NOT EDIT package docs import "github.com/swaggo/swag" const docTemplate = `{ "schemes": {{ marshal .Schemes }}, "swagger": "2.0", "info": { "description": "{{escape .Description}}", "title": "{{.Title}}", "contact": {}, "version": "{{.Version}}" }, "host": "{{.Host}}", "basePath": "{{.BasePath}}", "paths": { "/api/auth/login": { "post": { "description": "Authenticate user with email and password, returns JWT token", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Login", "parameters": [ { "description": "Login credentials", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/auth.LoginRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/auth.AuthResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } } } } }, "/api/auth/logout": { "post": { "description": "Invalidate a refresh token (logout)", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Logout", "parameters": [ { "description": "Refresh token to invalidate", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/auth.LogoutRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } } } } }, "/api/auth/me": { "get": { "security": [ { "Bearer": [] } ], "description": "Get authenticated user's profile", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Get current user", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/auth.UserResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } } } }, "put": { "security": [ { "Bearer": [] } ], "description": "Update current user's username", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Update profile", "parameters": [ { "description": "Profile update", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/auth.UpdateProfileRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/auth.UserResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } } } } }, "/api/auth/password": { "put": { "security": [ { "Bearer": [] } ], "description": "Change current user's password", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Change password", "parameters": [ { "description": "Password change details", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/auth.PasswordChangeRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } } } } }, "/api/auth/refresh": { "post": { "description": "Get a new access token using a refresh token", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Refresh token", "parameters": [ { "description": "Refresh token", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/auth.RefreshRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/auth.AuthResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } } } } }, "/api/auth/register": { "post": { "description": "Create user account with username, email, password", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "auth" ], "summary": "Register", "parameters": [ { "description": "Registration details", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/auth.RegisterRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/auth.AuthResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/auth.ErrorResponse" } } } } }, "/api/organizations": { "get": { "security": [ { "Bearer": [] } ], "description": "Get all organizations", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "organizations" ], "summary": "List organizations", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/org.OrgListResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/org.ErrorResponse" } } } }, "post": { "security": [ { "Bearer": [] } ], "description": "Create a new organization", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "organizations" ], "summary": "Create organization", "parameters": [ { "description": "Organization details", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/org.CreateOrgRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/org.OrgResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/org.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/org.ErrorResponse" } } } } }, "/api/organizations/{id}": { "get": { "security": [ { "Bearer": [] } ], "description": "Get organization details", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "organizations" ], "summary": "Get organization by ID", "parameters": [ { "type": "string", "description": "Organization ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/org.OrgResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/org.ErrorResponse" } } } }, "put": { "security": [ { "Bearer": [] } ], "description": "Update organization name", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "organizations" ], "summary": "Update organization", "parameters": [ { "type": "string", "description": "Organization ID", "name": "id", "in": "path", "required": true }, { "description": "New organization details", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/org.UpdateOrgRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/org.OrgResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/org.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/org.ErrorResponse" } } } }, "delete": { "security": [ { "Bearer": [] } ], "description": "Delete an organization", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "organizations" ], "summary": "Delete organization", "parameters": [ { "type": "string", "description": "Organization ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/org.ErrorResponse" } } } } } }, "definitions": { "auth.AuthResponse": { "type": "object", "properties": { "refresh_token": { "type": "string", "example": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4=" }, "token": { "type": "string", "example": "eyJhbGciOiJIUzI1NiIs..." }, "user": { "$ref": "#/definitions/auth.UserPublic" } } }, "auth.ErrorResponse": { "type": "object", "properties": { "error": { "type": "string", "example": "invalid email or password" } } }, "auth.LoginRequest": { "type": "object", "required": [ "email", "password" ], "properties": { "email": { "type": "string", "example": "john@example.com" }, "password": { "type": "string", "example": "secret123" } } }, "auth.LogoutRequest": { "type": "object", "required": [ "refresh_token" ], "properties": { "refresh_token": { "type": "string", "example": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4=" } } }, "auth.PasswordChangeRequest": { "type": "object", "required": [ "new_password", "old_password" ], "properties": { "new_password": { "type": "string", "minLength": 8, "example": "NewSecret456!" }, "old_password": { "type": "string", "example": "Secret123!" } } }, "auth.RefreshRequest": { "type": "object", "required": [ "refresh_token" ], "properties": { "refresh_token": { "type": "string", "example": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4=" } } }, "auth.RegisterRequest": { "type": "object", "required": [ "email", "password", "username" ], "properties": { "email": { "type": "string", "example": "john@example.com" }, "password": { "type": "string", "minLength": 8, "example": "Secret123!" }, "username": { "type": "string", "maxLength": 30, "minLength": 3, "example": "john" } } }, "auth.UpdateProfileRequest": { "type": "object", "required": [ "username" ], "properties": { "username": { "type": "string", "maxLength": 30, "minLength": 3, "example": "john_updated" } } }, "auth.UserPublic": { "type": "object", "properties": { "created_at": { "type": "string" }, "email": { "type": "string" }, "id": { "type": "string" }, "username": { "type": "string" } } }, "auth.UserResponse": { "type": "object", "properties": { "user": { "$ref": "#/definitions/auth.UserPublic" } } }, "org.CreateOrgRequest": { "type": "object", "required": [ "name", "slug" ], "properties": { "name": { "type": "string", "maxLength": 100, "minLength": 2, "example": "My Corp" }, "slug": { "type": "string", "maxLength": 50, "minLength": 2, "example": "my-corp" } } }, "org.ErrorResponse": { "type": "object", "properties": { "error": { "type": "string" } } }, "org.OrgListResponse": { "type": "object", "properties": { "organizations": { "type": "array", "items": { "$ref": "#/definitions/org.Organization" } }, "total": { "type": "integer" } } }, "org.OrgResponse": { "type": "object", "properties": { "organization": { "$ref": "#/definitions/org.Organization" } } }, "org.Organization": { "type": "object", "properties": { "created_at": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "updated_at": { "type": "string" } } }, "org.UpdateOrgRequest": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "maxLength": 100, "minLength": 2, "example": "My Corp Updated" } } } }, "securityDefinitions": { "Bearer": { "description": "Type \"Bearer\" followed by a space and the JWT token.", "type": "apiKey", "name": "Authorization", "in": "header" } } }` // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "1.0", Host: "", BasePath: "", Schemes: []string{"http"}, Title: "AegisGuard API", Description: "API for AegisGuard control plane", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", RightDelim: "}}", } func init() { swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) }