{
  "swagger": "2.0",
  "info": {
    "description": "This is a management portal server",
    "title": "Management Portal API",
    "contact": {},
    "version": "1.0"
  },
  "schemes": ["http"],
  "consumes": ["application/json"],
  "produces": ["application/json"],
  "basePath": "/api/v1/devops/tenants",
  "paths": {
    "/{org_id}/audit/audit_logs": {
      "get": {
        "operationId": "getAuditLogs",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["auditlog"],
        "summary": "query audit log",
        "parameters": [
          {
            "type": "string",
            "description": "org id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "event types",
            "name": "event_types",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "int",
            "name": "result",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "time range, started_at",
            "name": "started_at",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "time range, ended_at",
            "name": "ended_at",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "operator type",
            "name": "operator_type",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "operator id",
            "name": "operator_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "operator email",
            "name": "operator_email",
            "in": "query"
          },
          {
            "type": "string",
            "description": "operator ip",
            "name": "operator_ip",
            "in": "query"
          },
          {
            "type": "string",
            "description": "login method: google/github/auth0",
            "name": "operator_login_method",
            "in": "query"
          },
          {
            "type": "string",
            "description": "trace id",
            "name": "trace_id",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "org_id",
            "name": "org_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "org name",
            "name": "org_name",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "project id",
            "name": "project_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "project name",
            "name": "project_name",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "cluster id",
            "name": "cluster_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "cluster name",
            "name": "cluster_name",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "page number",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "page size",
            "name": "per_page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/types.QueryAuditLogResp"
            }
          }
        }
      }
    },
    "/{org_id}/audit/audit_logs/export": {
      "get": {
        "operationId": "auditLogsExport",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["auditlog"],
        "summary": "query audit log",
        "parameters": [
          {
            "type": "string",
            "description": "org id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "event types",
            "name": "event_types",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "int",
            "name": "result",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "time range, started_at",
            "name": "started_at",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "time range, ended_at",
            "name": "ended_at",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "operator type",
            "name": "operator_type",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "operator id",
            "name": "operator_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "operator email",
            "name": "operator_email",
            "in": "query"
          },
          {
            "type": "string",
            "description": "operator ip",
            "name": "operator_ip",
            "in": "query"
          },
          {
            "type": "string",
            "description": "login method: google/github/auth0",
            "name": "operator_login_method",
            "in": "query"
          },
          {
            "type": "string",
            "description": "trace id",
            "name": "trace_id",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "org_id",
            "name": "org_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "org name",
            "name": "org_name",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "project id",
            "name": "project_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "project name",
            "name": "project_name",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "cluster id",
            "name": "cluster_id",
            "in": "query"
          },
          {
            "type": "string",
            "description": "cluster name",
            "name": "cluster_name",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "offset, from id, use 0 by default",
            "name": "from",
            "in": "query"
          },
          {
            "type": "integer",
            "description": "limit, limit size",
            "name": "limit",
            "in": "query"
          },
          {
            "type": "string",
            "description": "format",
            "name": "format",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": ""
            }
          }
        }
      }
    },
    "/{org_id}/audit/settings": {
      "get": {
        "operationId": "getAuditLogSettings",
        "produces": ["application/json"],
        "tags": ["auditlog"],
        "summary": "query settings",
        "parameters": [
          {
            "type": "string",
            "description": "org id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/types.QuerySettingsResp"
            }
          }
        }
      },
      "put": {
        "operationId": "updateAuditLogSettings",
        "produces": ["application/json"],
        "tags": ["auditlog"],
        "summary": "update settings",
        "parameters": [
          {
            "type": "string",
            "description": "org id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "description": "update settings",
            "name": "status",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/types.UpdateSettingsReq"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/{org_id}/audit/event_types": {
      "get": {
        "operationId": "getEventTypes",
        "produces": ["application/json"],
        "tags": ["auditlog"],
        "summary": "query event types",
        "parameters": [
          {
            "type": "string",
            "description": "org id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/types.EventTypesResp"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "types.EventTypesResp": {
      "type": "object",
      "properties": {
        "event_types": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "types.ExportEvent": {
      "type": "object",
      "properties": {
        "cluster_id": {
          "type": "string",
          "example": "0"
        },
        "cluster_name": {
          "type": "string"
        },
        "cluster_type": {
          "type": "string"
        },
        "details": {
          "type": "string"
        },
        "ends_at": {
          "type": "string"
        },
        "operator_email": {
          "type": "string"
        },
        "operator_id": {
          "type": "string",
          "example": "0"
        },
        "operator_ip": {
          "type": "string"
        },
        "operator_login_method": {
          "type": "string"
        },
        "operator_type": {
          "type": "string"
        },
        "org_id": {
          "type": "string",
          "example": "0"
        },
        "org_name": {
          "type": "string"
        },
        "project_id": {
          "type": "string",
          "example": "0"
        },
        "project_name": {
          "type": "string"
        },
        "result": {
          "type": "string"
        },
        "trace_id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "types.QueryAuditLogResp": {
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/types.ExportEvent"
          }
        },
        "total_count": {
          "type": "integer"
        }
      }
    },
    "types.QuerySettingsResp": {
      "type": "object",
      "properties": {
        "status": {
          "type": "integer"
        }
      }
    },
    "types.UpdateSettingsReq": {
      "type": "object",
      "properties": {
        "status": {
          "type": "integer"
        }
      }
    }
  }
}
