Files
object-browser/restapi/embedded_spec.go
Lenin Alevski 1e7f272a67 MCS service account authentication with Mkube (#166)
`MCS` will authenticate against `Mkube`using bearer tokens via HTTP
`Authorization` header. The user will provide this token once
in the login form, MCS will validate it against Mkube (list tenants) and
if valid will generate and return a new MCS sessions
with encrypted claims (the user Service account token will be inside the
JWT in the data field)

Kubernetes

The provided `JWT token` corresponds to the `Kubernetes service account`
that `Mkube` will use to run tasks on behalf of the
user, ie: list, create, edit, delete tenants, storage class, etc.

Development

If you are running mcs in your local environment and wish to make
request to `Mkube` you can set `MCS_M3_HOSTNAME`, if
the environment variable is not present by default `MCS` will use
`"http://m3:8787"`, additionally you will need to set the
`MCS_MKUBE_ADMIN_ONLY=on` variable to make MCS display the Mkube UI

Extract the Service account token and use it with MCS

For local development you can use the jwt associated to the `m3-sa`
service account, you can get the token running
the following command in your terminal:

```
kubectl get secret $(kubectl get serviceaccount m3-sa -o
jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64
--decode
```

Then run the mcs server

```
MCS_M3_HOSTNAME=http://localhost:8787 MCS_MKUBE_ADMIN_ONLY=on ./mcs
server
```

Self-signed certificates and Custom certificate authority for Mkube

If Mkube uses TLS with a self-signed certificate, or a certificate
issued by a custom certificate authority you can add those
certificates usinng the `MCS_M3_SERVER_TLS_CA_CERTIFICATE` env variable

````
MCS_M3_SERVER_TLS_CA_CERTIFICATE=cert1.pem,cert2.pem,cert3.pem ./mcs
server
````
2020-06-23 11:37:46 -07:00

4360 lines
97 KiB
Go

// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2020 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
package restapi
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"encoding/json"
)
var (
// SwaggerJSON embedded version of the swagger document used at generation time
SwaggerJSON json.RawMessage
// FlatSwaggerJSON embedded flattened version of the swagger document used at generation time
FlatSwaggerJSON json.RawMessage
)
func init() {
SwaggerJSON = json.RawMessage([]byte(`{
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"schemes": [
"http",
"ws"
],
"swagger": "2.0",
"info": {
"title": "MinIO Console Server",
"version": "0.1.0"
},
"basePath": "/api/v1",
"paths": {
"/admin/arns": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Returns a list of active ARNs in the instance",
"operationId": "ArnList",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/arnsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/admin/info": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Returns information about the deployment",
"operationId": "AdminInfo",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/adminInfoResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/admin/notification_endpoints": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Returns a list of active notification endpoints",
"operationId": "NotificationEndpointList",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/notifEndpointResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Allows to configure a new notification endpoint",
"operationId": "AddNotificationEndpoint",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/notificationEndpoint"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/notificationEndpoint"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets": {
"get": {
"tags": [
"UserAPI"
],
"summary": "List Buckets",
"operationId": "ListBuckets",
"parameters": [
{
"type": "string",
"name": "sort_by",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listBucketsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"UserAPI"
],
"summary": "Make bucket",
"operationId": "MakeBucket",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/makeBucketRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{bucket_name}/events": {
"get": {
"tags": [
"UserAPI"
],
"summary": "List Bucket Events",
"operationId": "ListBucketEvents",
"parameters": [
{
"type": "string",
"name": "bucket_name",
"in": "path",
"required": true
},
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listBucketEventsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"UserAPI"
],
"summary": "Create Bucket Event",
"operationId": "CreateBucketEvent",
"parameters": [
{
"type": "string",
"name": "bucket_name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bucketEventRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{bucket_name}/events/{arn}": {
"delete": {
"tags": [
"UserAPI"
],
"summary": "Delete Bucket Event",
"operationId": "DeleteBucketEvent",
"parameters": [
{
"type": "string",
"name": "bucket_name",
"in": "path",
"required": true
},
{
"type": "string",
"name": "arn",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/notificationDeleteRequest"
}
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{name}": {
"get": {
"tags": [
"UserAPI"
],
"summary": "Bucket Info",
"operationId": "BucketInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/bucket"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"UserAPI"
],
"summary": "Delete Bucket",
"operationId": "DeleteBucket",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{name}/set-policy": {
"put": {
"tags": [
"UserAPI"
],
"summary": "Bucket Set Policy",
"operationId": "BucketSetPolicy",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/setBucketPolicyRequest"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/bucket"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/configs": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Configurations",
"operationId": "ListConfig",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listConfigResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/configs/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Configuration info",
"operationId": "ConfigInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/configuration"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"put": {
"tags": [
"AdminAPI"
],
"summary": "Set Configuration",
"operationId": "SetConfig",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/setConfigRequest"
}
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/groups": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Groups",
"operationId": "ListGroups",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listGroupsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Add Group",
"operationId": "AddGroup",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/addGroupRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/groups/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Group info",
"operationId": "GroupInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/group"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"put": {
"tags": [
"AdminAPI"
],
"summary": "Update Group Members or Status",
"operationId": "UpdateGroup",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/updateGroupRequest"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/group"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"AdminAPI"
],
"summary": "Remove group",
"operationId": "RemoveGroup",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/login": {
"get": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Returns login strategy, form or sso.",
"operationId": "LoginDetail",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/loginDetails"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Login to mcs",
"operationId": "Login",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/loginRequest"
}
}
],
"responses": {
"201": {
"description": "A successful login.",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/login/mkube": {
"post": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Login to Mkube.",
"operationId": "LoginMkube",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/loginMkubeRequest"
}
}
],
"responses": {
"201": {
"description": "A successful login.",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/login/oauth2/auth": {
"post": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Identity Provider oauth2 callback endpoint.",
"operationId": "LoginOauth2Auth",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/loginOauth2AuthRequest"
}
}
],
"responses": {
"201": {
"description": "A successful login.",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/logout": {
"post": {
"tags": [
"UserAPI"
],
"summary": "Logout from mcs.",
"operationId": "Logout",
"responses": {
"200": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/policies": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Policies",
"operationId": "ListPolicies",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listPoliciesResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Add Policy",
"operationId": "AddPolicy",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/addPolicyRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/policy"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/policies/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Policy info",
"operationId": "PolicyInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/policy"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"AdminAPI"
],
"summary": "Remove policy",
"operationId": "RemovePolicy",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/profiling/start": {
"post": {
"tags": [
"AdminAPI"
],
"summary": "Start recording profile data",
"operationId": "ProfilingStart",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/profilingStartRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/startProfilingList"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/profiling/stop": {
"post": {
"produces": [
"application/octet-stream"
],
"tags": [
"AdminAPI"
],
"summary": "Stop and download profile data",
"operationId": "ProfilingStop",
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"type": "file"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/service-accounts": {
"get": {
"tags": [
"UserAPI"
],
"summary": "List User's Service Accounts",
"operationId": "ListUserServiceAccounts",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/serviceAccounts"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"UserAPI"
],
"summary": "Create Service Account",
"operationId": "CreateServiceAccount",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/serviceAccountRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/serviceAccountCreds"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/service-accounts/{access_key}": {
"delete": {
"tags": [
"UserAPI"
],
"summary": "Delete Service Account",
"operationId": "DeleteServiceAccount",
"parameters": [
{
"type": "string",
"name": "access_key",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/service/restart": {
"post": {
"tags": [
"AdminAPI"
],
"summary": "Restart Service",
"operationId": "RestartService",
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/session": {
"get": {
"tags": [
"UserAPI"
],
"summary": "Endpoint to check if your session is still valid",
"operationId": "SessionCheck",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/sessionResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/set-policy/{name}": {
"put": {
"tags": [
"AdminAPI"
],
"summary": "Set policy",
"operationId": "SetPolicy",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/setPolicyRequest"
}
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Users",
"operationId": "ListUsers",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listUsersResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Add User",
"operationId": "AddUser",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/addUserRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users-groups-bulk": {
"put": {
"tags": [
"AdminAPI"
],
"summary": "Bulk functionality to Add Users to Groups",
"operationId": "BulkUpdateUsersGroups",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bulkUserGroups"
}
}
],
"responses": {
"200": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Get User Info",
"operationId": "GetUserInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"put": {
"tags": [
"AdminAPI"
],
"summary": "Update User Info",
"operationId": "UpdateUserInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/updateUser"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"AdminAPI"
],
"summary": "Remove user",
"operationId": "RemoveUser",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users/{name}/groups": {
"put": {
"tags": [
"AdminAPI"
],
"summary": "Update Groups for a user",
"operationId": "UpdateUserGroups",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/updateUserGroups"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
}
},
"definitions": {
"addGroupRequest": {
"type": "object",
"required": [
"group",
"members"
],
"properties": {
"group": {
"type": "string"
},
"members": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"addPolicyRequest": {
"type": "object",
"required": [
"name",
"policy"
],
"properties": {
"name": {
"type": "string"
},
"policy": {
"type": "string"
}
}
},
"addUserRequest": {
"type": "object",
"required": [
"accessKey",
"secretKey",
"groups"
],
"properties": {
"accessKey": {
"type": "string"
},
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"secretKey": {
"type": "string"
}
}
},
"adminInfoResponse": {
"type": "object",
"properties": {
"buckets": {
"type": "integer"
},
"objects": {
"type": "integer"
},
"usage": {
"type": "integer"
}
}
},
"arnsResponse": {
"type": "object",
"properties": {
"arns": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"bucket": {
"type": "object",
"required": [
"name"
],
"properties": {
"access": {
"$ref": "#/definitions/bucketAccess"
},
"creation_date": {
"type": "string"
},
"name": {
"type": "string",
"minLength": 3
},
"size": {
"type": "integer",
"format": "int64"
}
}
},
"bucketAccess": {
"type": "string",
"default": "PRIVATE",
"enum": [
"PRIVATE",
"PUBLIC",
"CUSTOM"
]
},
"bucketEventRequest": {
"type": "object",
"required": [
"configuration"
],
"properties": {
"configuration": {
"$ref": "#/definitions/notificationConfig"
},
"ignoreExisting": {
"type": "boolean"
}
}
},
"bulkUserGroups": {
"type": "object",
"required": [
"users",
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"users": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"configDescription": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"key": {
"type": "string"
}
}
},
"configuration": {
"type": "object",
"properties": {
"key_values": {
"type": "array",
"items": {
"$ref": "#/definitions/configurationKV"
}
},
"name": {
"type": "string"
}
}
},
"configurationKV": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"error": {
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"type": "integer",
"format": "int64"
},
"message": {
"type": "string"
}
}
},
"group": {
"type": "object",
"properties": {
"members": {
"type": "array",
"items": {
"type": "string"
}
},
"name": {
"type": "string"
},
"policy": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"listBucketEventsResponse": {
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"$ref": "#/definitions/notificationConfig"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of bucket events"
}
}
},
"listBucketsResponse": {
"type": "object",
"properties": {
"buckets": {
"type": "array",
"title": "list of resulting buckets",
"items": {
"$ref": "#/definitions/bucket"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "number of buckets accessible to tenant user"
}
}
},
"listConfigResponse": {
"type": "object",
"properties": {
"configurations": {
"type": "array",
"items": {
"$ref": "#/definitions/configDescription"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of configurations"
}
}
},
"listGroupsResponse": {
"type": "object",
"properties": {
"groups": {
"type": "array",
"title": "list of groups",
"items": {
"type": "string"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of groups"
}
}
},
"listPoliciesResponse": {
"type": "object",
"properties": {
"policies": {
"type": "array",
"title": "list of policies",
"items": {
"$ref": "#/definitions/policy"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of policies"
}
}
},
"listUsersResponse": {
"type": "object",
"properties": {
"users": {
"type": "array",
"title": "list of resulting users",
"items": {
"$ref": "#/definitions/user"
}
}
}
},
"loginDetails": {
"type": "object",
"properties": {
"loginStrategy": {
"type": "string",
"enum": [
"form",
"redirect",
"service-account"
]
},
"redirect": {
"type": "string"
}
}
},
"loginMkubeRequest": {
"type": "object",
"required": [
"jwt"
],
"properties": {
"jwt": {
"type": "string"
}
}
},
"loginOauth2AuthRequest": {
"type": "object",
"required": [
"state",
"code"
],
"properties": {
"code": {
"type": "string"
},
"state": {
"type": "string"
}
}
},
"loginRequest": {
"type": "object",
"required": [
"accessKey",
"secretKey"
],
"properties": {
"accessKey": {
"type": "string"
},
"secretKey": {
"type": "string"
}
}
},
"loginResponse": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
}
}
},
"makeBucketRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
},
"nofiticationService": {
"type": "string",
"enum": [
"webhook",
"amqp",
"kafka",
"mqtt",
"nats",
"nsq",
"mysql",
"postgres",
"elasticsearch",
"redis"
]
},
"notifEndpointResponse": {
"type": "object",
"properties": {
"notification_endpoints": {
"type": "array",
"items": {
"$ref": "#/definitions/notificationEndpointItem"
}
}
}
},
"notificationConfig": {
"type": "object",
"required": [
"arn"
],
"properties": {
"arn": {
"type": "string"
},
"events": {
"type": "array",
"title": "filter specific type of event. Defaults to all event (default: '[put,delete,get]')",
"items": {
"$ref": "#/definitions/notificationEventType"
}
},
"id": {
"type": "string"
},
"prefix": {
"type": "string",
"title": "filter event associated to the specified prefix"
},
"suffix": {
"type": "string",
"title": "filter event associated to the specified suffix"
}
}
},
"notificationDeleteRequest": {
"type": "object",
"required": [
"events",
"prefix",
"suffix"
],
"properties": {
"events": {
"type": "array",
"title": "filter specific type of event. Defaults to all event (default: '[put,delete,get]')",
"minLength": 1,
"items": {
"$ref": "#/definitions/notificationEventType"
}
},
"prefix": {
"type": "string",
"title": "filter event associated to the specified prefix"
},
"suffix": {
"type": "string",
"title": "filter event associated to the specified suffix"
}
}
},
"notificationEndpoint": {
"type": "object",
"required": [
"service",
"account_id",
"properties"
],
"properties": {
"account_id": {
"type": "string"
},
"properties": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"service": {
"$ref": "#/definitions/nofiticationService"
}
}
},
"notificationEndpointItem": {
"type": "object",
"properties": {
"account_id": {
"type": "string"
},
"service": {
"$ref": "#/definitions/nofiticationService"
},
"status": {
"type": "string"
}
}
},
"notificationEventType": {
"type": "string",
"enum": [
"put",
"delete",
"get"
]
},
"policy": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"policy": {
"type": "string"
}
}
},
"policyEntity": {
"type": "string",
"default": "user",
"enum": [
"user",
"group"
]
},
"principal": {
"type": "string"
},
"profilerType": {
"type": "string",
"enum": [
"cpu",
"mem",
"block",
"mutex",
"trace",
"threads",
"goroutines"
]
},
"profilingStartRequest": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"$ref": "#/definitions/profilerType"
}
}
},
"serviceAccountCreds": {
"type": "object",
"properties": {
"accessKey": {
"type": "string"
},
"secretKey": {
"type": "string"
}
}
},
"serviceAccountRequest": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"title": "policy to be applied to the Service Account if any"
}
}
},
"serviceAccounts": {
"type": "array",
"items": {
"type": "string"
}
},
"sessionResponse": {
"type": "object",
"properties": {
"pages": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"ok"
]
}
}
},
"setBucketPolicyRequest": {
"type": "object",
"required": [
"access"
],
"properties": {
"access": {
"$ref": "#/definitions/bucketAccess"
}
}
},
"setConfigRequest": {
"type": "object",
"required": [
"key_values"
],
"properties": {
"arn_resource_id": {
"type": "string",
"title": "Used if configuration is an event notification's target"
},
"key_values": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/configurationKV"
}
}
}
},
"setPolicyRequest": {
"type": "object",
"required": [
"entityType",
"entityName"
],
"properties": {
"entityName": {
"type": "string"
},
"entityType": {
"$ref": "#/definitions/policyEntity"
}
}
},
"startProfilingItem": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"nodeName": {
"type": "string"
},
"success": {
"type": "boolean"
}
}
},
"startProfilingList": {
"type": "object",
"properties": {
"startResults": {
"type": "array",
"items": {
"$ref": "#/definitions/startProfilingItem"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "number of start results"
}
}
},
"updateGroupRequest": {
"type": "object",
"required": [
"members",
"status"
],
"properties": {
"members": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"updateUser": {
"type": "object",
"required": [
"status",
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"updateUserGroups": {
"type": "object",
"required": [
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"user": {
"type": "object",
"properties": {
"accessKey": {
"type": "string"
},
"memberOf": {
"type": "array",
"items": {
"type": "string"
}
},
"policy": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"key": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "http://min.io",
"tokenUrl": "http://min.io"
}
},
"security": [
{
"key": []
}
]
}`))
FlatSwaggerJSON = json.RawMessage([]byte(`{
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"schemes": [
"http",
"ws"
],
"swagger": "2.0",
"info": {
"title": "MinIO Console Server",
"version": "0.1.0"
},
"basePath": "/api/v1",
"paths": {
"/admin/arns": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Returns a list of active ARNs in the instance",
"operationId": "ArnList",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/arnsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/admin/info": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Returns information about the deployment",
"operationId": "AdminInfo",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/adminInfoResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/admin/notification_endpoints": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Returns a list of active notification endpoints",
"operationId": "NotificationEndpointList",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/notifEndpointResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Allows to configure a new notification endpoint",
"operationId": "AddNotificationEndpoint",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/notificationEndpoint"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/notificationEndpoint"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets": {
"get": {
"tags": [
"UserAPI"
],
"summary": "List Buckets",
"operationId": "ListBuckets",
"parameters": [
{
"type": "string",
"name": "sort_by",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listBucketsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"UserAPI"
],
"summary": "Make bucket",
"operationId": "MakeBucket",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/makeBucketRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{bucket_name}/events": {
"get": {
"tags": [
"UserAPI"
],
"summary": "List Bucket Events",
"operationId": "ListBucketEvents",
"parameters": [
{
"type": "string",
"name": "bucket_name",
"in": "path",
"required": true
},
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listBucketEventsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"UserAPI"
],
"summary": "Create Bucket Event",
"operationId": "CreateBucketEvent",
"parameters": [
{
"type": "string",
"name": "bucket_name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bucketEventRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{bucket_name}/events/{arn}": {
"delete": {
"tags": [
"UserAPI"
],
"summary": "Delete Bucket Event",
"operationId": "DeleteBucketEvent",
"parameters": [
{
"type": "string",
"name": "bucket_name",
"in": "path",
"required": true
},
{
"type": "string",
"name": "arn",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/notificationDeleteRequest"
}
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{name}": {
"get": {
"tags": [
"UserAPI"
],
"summary": "Bucket Info",
"operationId": "BucketInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/bucket"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"UserAPI"
],
"summary": "Delete Bucket",
"operationId": "DeleteBucket",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/buckets/{name}/set-policy": {
"put": {
"tags": [
"UserAPI"
],
"summary": "Bucket Set Policy",
"operationId": "BucketSetPolicy",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/setBucketPolicyRequest"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/bucket"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/configs": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Configurations",
"operationId": "ListConfig",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listConfigResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/configs/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Configuration info",
"operationId": "ConfigInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/configuration"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"put": {
"tags": [
"AdminAPI"
],
"summary": "Set Configuration",
"operationId": "SetConfig",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/setConfigRequest"
}
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/groups": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Groups",
"operationId": "ListGroups",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listGroupsResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Add Group",
"operationId": "AddGroup",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/addGroupRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/groups/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Group info",
"operationId": "GroupInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/group"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"put": {
"tags": [
"AdminAPI"
],
"summary": "Update Group Members or Status",
"operationId": "UpdateGroup",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/updateGroupRequest"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/group"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"AdminAPI"
],
"summary": "Remove group",
"operationId": "RemoveGroup",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/login": {
"get": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Returns login strategy, form or sso.",
"operationId": "LoginDetail",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/loginDetails"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Login to mcs",
"operationId": "Login",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/loginRequest"
}
}
],
"responses": {
"201": {
"description": "A successful login.",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/login/mkube": {
"post": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Login to Mkube.",
"operationId": "LoginMkube",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/loginMkubeRequest"
}
}
],
"responses": {
"201": {
"description": "A successful login.",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/login/oauth2/auth": {
"post": {
"security": [],
"tags": [
"UserAPI"
],
"summary": "Identity Provider oauth2 callback endpoint.",
"operationId": "LoginOauth2Auth",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/loginOauth2AuthRequest"
}
}
],
"responses": {
"201": {
"description": "A successful login.",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/logout": {
"post": {
"tags": [
"UserAPI"
],
"summary": "Logout from mcs.",
"operationId": "Logout",
"responses": {
"200": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/policies": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Policies",
"operationId": "ListPolicies",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listPoliciesResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Add Policy",
"operationId": "AddPolicy",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/addPolicyRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/policy"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/policies/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Policy info",
"operationId": "PolicyInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/policy"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"AdminAPI"
],
"summary": "Remove policy",
"operationId": "RemovePolicy",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/profiling/start": {
"post": {
"tags": [
"AdminAPI"
],
"summary": "Start recording profile data",
"operationId": "ProfilingStart",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/profilingStartRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/startProfilingList"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/profiling/stop": {
"post": {
"produces": [
"application/octet-stream"
],
"tags": [
"AdminAPI"
],
"summary": "Stop and download profile data",
"operationId": "ProfilingStop",
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"type": "file"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/service-accounts": {
"get": {
"tags": [
"UserAPI"
],
"summary": "List User's Service Accounts",
"operationId": "ListUserServiceAccounts",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/serviceAccounts"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"UserAPI"
],
"summary": "Create Service Account",
"operationId": "CreateServiceAccount",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/serviceAccountRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/serviceAccountCreds"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/service-accounts/{access_key}": {
"delete": {
"tags": [
"UserAPI"
],
"summary": "Delete Service Account",
"operationId": "DeleteServiceAccount",
"parameters": [
{
"type": "string",
"name": "access_key",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/service/restart": {
"post": {
"tags": [
"AdminAPI"
],
"summary": "Restart Service",
"operationId": "RestartService",
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/session": {
"get": {
"tags": [
"UserAPI"
],
"summary": "Endpoint to check if your session is still valid",
"operationId": "SessionCheck",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/sessionResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/set-policy/{name}": {
"put": {
"tags": [
"AdminAPI"
],
"summary": "Set policy",
"operationId": "SetPolicy",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/setPolicyRequest"
}
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "List Users",
"operationId": "ListUsers",
"parameters": [
{
"type": "integer",
"format": "int32",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"format": "int32",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/listUsersResponse"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"post": {
"tags": [
"AdminAPI"
],
"summary": "Add User",
"operationId": "AddUser",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/addUserRequest"
}
}
],
"responses": {
"201": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users-groups-bulk": {
"put": {
"tags": [
"AdminAPI"
],
"summary": "Bulk functionality to Add Users to Groups",
"operationId": "BulkUpdateUsersGroups",
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bulkUserGroups"
}
}
],
"responses": {
"200": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users/{name}": {
"get": {
"tags": [
"AdminAPI"
],
"summary": "Get User Info",
"operationId": "GetUserInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"put": {
"tags": [
"AdminAPI"
],
"summary": "Update User Info",
"operationId": "UpdateUserInfo",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/updateUser"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
},
"delete": {
"tags": [
"AdminAPI"
],
"summary": "Remove user",
"operationId": "RemoveUser",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "A successful response."
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
},
"/users/{name}/groups": {
"put": {
"tags": [
"AdminAPI"
],
"summary": "Update Groups for a user",
"operationId": "UpdateUserGroups",
"parameters": [
{
"type": "string",
"name": "name",
"in": "path",
"required": true
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/updateUserGroups"
}
}
],
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/user"
}
},
"default": {
"description": "Generic error response.",
"schema": {
"$ref": "#/definitions/error"
}
}
}
}
}
},
"definitions": {
"addGroupRequest": {
"type": "object",
"required": [
"group",
"members"
],
"properties": {
"group": {
"type": "string"
},
"members": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"addPolicyRequest": {
"type": "object",
"required": [
"name",
"policy"
],
"properties": {
"name": {
"type": "string"
},
"policy": {
"type": "string"
}
}
},
"addUserRequest": {
"type": "object",
"required": [
"accessKey",
"secretKey",
"groups"
],
"properties": {
"accessKey": {
"type": "string"
},
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"secretKey": {
"type": "string"
}
}
},
"adminInfoResponse": {
"type": "object",
"properties": {
"buckets": {
"type": "integer"
},
"objects": {
"type": "integer"
},
"usage": {
"type": "integer"
}
}
},
"arnsResponse": {
"type": "object",
"properties": {
"arns": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"bucket": {
"type": "object",
"required": [
"name"
],
"properties": {
"access": {
"$ref": "#/definitions/bucketAccess"
},
"creation_date": {
"type": "string"
},
"name": {
"type": "string",
"minLength": 3
},
"size": {
"type": "integer",
"format": "int64"
}
}
},
"bucketAccess": {
"type": "string",
"default": "PRIVATE",
"enum": [
"PRIVATE",
"PUBLIC",
"CUSTOM"
]
},
"bucketEventRequest": {
"type": "object",
"required": [
"configuration"
],
"properties": {
"configuration": {
"$ref": "#/definitions/notificationConfig"
},
"ignoreExisting": {
"type": "boolean"
}
}
},
"bulkUserGroups": {
"type": "object",
"required": [
"users",
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"users": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"configDescription": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"key": {
"type": "string"
}
}
},
"configuration": {
"type": "object",
"properties": {
"key_values": {
"type": "array",
"items": {
"$ref": "#/definitions/configurationKV"
}
},
"name": {
"type": "string"
}
}
},
"configurationKV": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"error": {
"type": "object",
"required": [
"message"
],
"properties": {
"code": {
"type": "integer",
"format": "int64"
},
"message": {
"type": "string"
}
}
},
"group": {
"type": "object",
"properties": {
"members": {
"type": "array",
"items": {
"type": "string"
}
},
"name": {
"type": "string"
},
"policy": {
"type": "string"
},
"status": {
"type": "string"
}
}
},
"listBucketEventsResponse": {
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"$ref": "#/definitions/notificationConfig"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of bucket events"
}
}
},
"listBucketsResponse": {
"type": "object",
"properties": {
"buckets": {
"type": "array",
"title": "list of resulting buckets",
"items": {
"$ref": "#/definitions/bucket"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "number of buckets accessible to tenant user"
}
}
},
"listConfigResponse": {
"type": "object",
"properties": {
"configurations": {
"type": "array",
"items": {
"$ref": "#/definitions/configDescription"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of configurations"
}
}
},
"listGroupsResponse": {
"type": "object",
"properties": {
"groups": {
"type": "array",
"title": "list of groups",
"items": {
"type": "string"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of groups"
}
}
},
"listPoliciesResponse": {
"type": "object",
"properties": {
"policies": {
"type": "array",
"title": "list of policies",
"items": {
"$ref": "#/definitions/policy"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "total number of policies"
}
}
},
"listUsersResponse": {
"type": "object",
"properties": {
"users": {
"type": "array",
"title": "list of resulting users",
"items": {
"$ref": "#/definitions/user"
}
}
}
},
"loginDetails": {
"type": "object",
"properties": {
"loginStrategy": {
"type": "string",
"enum": [
"form",
"redirect",
"service-account"
]
},
"redirect": {
"type": "string"
}
}
},
"loginMkubeRequest": {
"type": "object",
"required": [
"jwt"
],
"properties": {
"jwt": {
"type": "string"
}
}
},
"loginOauth2AuthRequest": {
"type": "object",
"required": [
"state",
"code"
],
"properties": {
"code": {
"type": "string"
},
"state": {
"type": "string"
}
}
},
"loginRequest": {
"type": "object",
"required": [
"accessKey",
"secretKey"
],
"properties": {
"accessKey": {
"type": "string"
},
"secretKey": {
"type": "string"
}
}
},
"loginResponse": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
}
}
},
"makeBucketRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
},
"nofiticationService": {
"type": "string",
"enum": [
"webhook",
"amqp",
"kafka",
"mqtt",
"nats",
"nsq",
"mysql",
"postgres",
"elasticsearch",
"redis"
]
},
"notifEndpointResponse": {
"type": "object",
"properties": {
"notification_endpoints": {
"type": "array",
"items": {
"$ref": "#/definitions/notificationEndpointItem"
}
}
}
},
"notificationConfig": {
"type": "object",
"required": [
"arn"
],
"properties": {
"arn": {
"type": "string"
},
"events": {
"type": "array",
"title": "filter specific type of event. Defaults to all event (default: '[put,delete,get]')",
"items": {
"$ref": "#/definitions/notificationEventType"
}
},
"id": {
"type": "string"
},
"prefix": {
"type": "string",
"title": "filter event associated to the specified prefix"
},
"suffix": {
"type": "string",
"title": "filter event associated to the specified suffix"
}
}
},
"notificationDeleteRequest": {
"type": "object",
"required": [
"events",
"prefix",
"suffix"
],
"properties": {
"events": {
"type": "array",
"title": "filter specific type of event. Defaults to all event (default: '[put,delete,get]')",
"minLength": 1,
"items": {
"$ref": "#/definitions/notificationEventType"
}
},
"prefix": {
"type": "string",
"title": "filter event associated to the specified prefix"
},
"suffix": {
"type": "string",
"title": "filter event associated to the specified suffix"
}
}
},
"notificationEndpoint": {
"type": "object",
"required": [
"service",
"account_id",
"properties"
],
"properties": {
"account_id": {
"type": "string"
},
"properties": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"service": {
"$ref": "#/definitions/nofiticationService"
}
}
},
"notificationEndpointItem": {
"type": "object",
"properties": {
"account_id": {
"type": "string"
},
"service": {
"$ref": "#/definitions/nofiticationService"
},
"status": {
"type": "string"
}
}
},
"notificationEventType": {
"type": "string",
"enum": [
"put",
"delete",
"get"
]
},
"policy": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"policy": {
"type": "string"
}
}
},
"policyEntity": {
"type": "string",
"default": "user",
"enum": [
"user",
"group"
]
},
"principal": {
"type": "string"
},
"profilerType": {
"type": "string",
"enum": [
"cpu",
"mem",
"block",
"mutex",
"trace",
"threads",
"goroutines"
]
},
"profilingStartRequest": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"$ref": "#/definitions/profilerType"
}
}
},
"serviceAccountCreds": {
"type": "object",
"properties": {
"accessKey": {
"type": "string"
},
"secretKey": {
"type": "string"
}
}
},
"serviceAccountRequest": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"title": "policy to be applied to the Service Account if any"
}
}
},
"serviceAccounts": {
"type": "array",
"items": {
"type": "string"
}
},
"sessionResponse": {
"type": "object",
"properties": {
"pages": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"ok"
]
}
}
},
"setBucketPolicyRequest": {
"type": "object",
"required": [
"access"
],
"properties": {
"access": {
"$ref": "#/definitions/bucketAccess"
}
}
},
"setConfigRequest": {
"type": "object",
"required": [
"key_values"
],
"properties": {
"arn_resource_id": {
"type": "string",
"title": "Used if configuration is an event notification's target"
},
"key_values": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/configurationKV"
}
}
}
},
"setPolicyRequest": {
"type": "object",
"required": [
"entityType",
"entityName"
],
"properties": {
"entityName": {
"type": "string"
},
"entityType": {
"$ref": "#/definitions/policyEntity"
}
}
},
"startProfilingItem": {
"type": "object",
"properties": {
"error": {
"type": "string"
},
"nodeName": {
"type": "string"
},
"success": {
"type": "boolean"
}
}
},
"startProfilingList": {
"type": "object",
"properties": {
"startResults": {
"type": "array",
"items": {
"$ref": "#/definitions/startProfilingItem"
}
},
"total": {
"type": "integer",
"format": "int64",
"title": "number of start results"
}
}
},
"updateGroupRequest": {
"type": "object",
"required": [
"members",
"status"
],
"properties": {
"members": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"updateUser": {
"type": "object",
"required": [
"status",
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
}
}
},
"updateUserGroups": {
"type": "object",
"required": [
"groups"
],
"properties": {
"groups": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"user": {
"type": "object",
"properties": {
"accessKey": {
"type": "string"
},
"memberOf": {
"type": "array",
"items": {
"type": "string"
}
},
"policy": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"key": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "http://min.io",
"tokenUrl": "http://min.io"
}
},
"security": [
{
"key": []
}
]
}`))
}