mirror of https://github.com/portainer/portainer
6104 lines
165 KiB
YAML
6104 lines
165 KiB
YAML
basePath: /api
|
|
definitions:
|
|
auth.authenticatePayload:
|
|
properties:
|
|
password:
|
|
description: Password
|
|
example: mypassword
|
|
type: string
|
|
username:
|
|
description: Username
|
|
example: admin
|
|
type: string
|
|
required:
|
|
- password
|
|
- username
|
|
type: object
|
|
auth.authenticateResponse:
|
|
properties:
|
|
jwt:
|
|
description: JWT token used to authenticate against the API
|
|
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOjEsImV4cCI6MTQ5OTM3NjE1NH0.NJ6vE8FY1WG6jsRQzfMqeatJ4vh2TWAeeYfDhP71YEE
|
|
type: string
|
|
type: object
|
|
auth.oauthPayload:
|
|
properties:
|
|
code:
|
|
description: OAuth code returned from OAuth Provided
|
|
type: string
|
|
type: object
|
|
customtemplates.customTemplateFromFileContentPayload:
|
|
properties:
|
|
description:
|
|
description: Description of the template
|
|
example: High performance web server
|
|
type: string
|
|
fileContent:
|
|
description: Content of stack file
|
|
type: string
|
|
logo:
|
|
description: URL of the template's logo
|
|
example: https://cloudinovasi.id/assets/img/logos/nginx.png
|
|
type: string
|
|
note:
|
|
description: A note that will be displayed in the UI. Supports HTML content
|
|
example: This is my <b>custom</b> template
|
|
type: string
|
|
platform:
|
|
description: |-
|
|
Platform associated to the template.
|
|
Valid values are: 1 - 'linux', 2 - 'windows'
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
title:
|
|
description: Title of the template
|
|
example: Nginx
|
|
type: string
|
|
type:
|
|
description: Type of created stack (1 - swarm, 2 - compose)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
required:
|
|
- description
|
|
- fileContent
|
|
- platform
|
|
- title
|
|
- type
|
|
type: object
|
|
customtemplates.customTemplateFromGitRepositoryPayload:
|
|
properties:
|
|
composeFilePathInRepository:
|
|
default: docker-compose.yml
|
|
description: Path to the Stack file inside the Git repository
|
|
example: docker-compose.yml
|
|
type: string
|
|
description:
|
|
description: Description of the template
|
|
example: High performance web server
|
|
type: string
|
|
logo:
|
|
description: URL of the template's logo
|
|
example: https://cloudinovasi.id/assets/img/logos/nginx.png
|
|
type: string
|
|
note:
|
|
description: A note that will be displayed in the UI. Supports HTML content
|
|
example: This is my <b>custom</b> template
|
|
type: string
|
|
platform:
|
|
description: |-
|
|
Platform associated to the template.
|
|
Valid values are: 1 - 'linux', 2 - 'windows'
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
repositoryAuthentication:
|
|
description: Use basic authentication to clone the Git repository
|
|
example: true
|
|
type: boolean
|
|
repositoryPassword:
|
|
description: Password used in basic authentication. Required when RepositoryAuthentication
|
|
is true.
|
|
example: myGitPassword
|
|
type: string
|
|
repositoryReferenceName:
|
|
description: Reference name of a Git repository hosting the Stack file
|
|
example: refs/heads/master
|
|
type: string
|
|
repositoryURL:
|
|
description: URL of a Git repository hosting the Stack file
|
|
example: https://github.com/openfaas/faas
|
|
type: string
|
|
repositoryUsername:
|
|
description: Username used in basic authentication. Required when RepositoryAuthentication
|
|
is true.
|
|
example: myGitUsername
|
|
type: string
|
|
title:
|
|
description: Title of the template
|
|
example: Nginx
|
|
type: string
|
|
type:
|
|
description: Type of created stack (1 - swarm, 2 - compose)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
required:
|
|
- description
|
|
- platform
|
|
- repositoryURL
|
|
- title
|
|
- type
|
|
type: object
|
|
customtemplates.customTemplateUpdatePayload:
|
|
properties:
|
|
description:
|
|
description: Description of the template
|
|
example: High performance web server
|
|
type: string
|
|
fileContent:
|
|
description: Content of stack file
|
|
type: string
|
|
logo:
|
|
description: URL of the template's logo
|
|
example: https://cloudinovasi.id/assets/img/logos/nginx.png
|
|
type: string
|
|
note:
|
|
description: A note that will be displayed in the UI. Supports HTML content
|
|
example: This is my <b>custom</b> template
|
|
type: string
|
|
platform:
|
|
description: |-
|
|
Platform associated to the template.
|
|
Valid values are: 1 - 'linux', 2 - 'windows'
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
title:
|
|
description: Title of the template
|
|
example: Nginx
|
|
type: string
|
|
type:
|
|
description: Type of created stack (1 - swarm, 2 - compose)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
required:
|
|
- description
|
|
- fileContent
|
|
- platform
|
|
- title
|
|
- type
|
|
type: object
|
|
customtemplates.fileResponse:
|
|
properties:
|
|
fileContent:
|
|
type: string
|
|
type: object
|
|
dockerhub.dockerhubUpdatePayload:
|
|
properties:
|
|
authentication:
|
|
description: Enable authentication against DockerHub
|
|
example: false
|
|
type: boolean
|
|
password:
|
|
description: Password used to authenticate against the DockerHub
|
|
example: hub_password
|
|
type: string
|
|
username:
|
|
description: Username used to authenticate against the DockerHub
|
|
example: hub_user
|
|
type: string
|
|
required:
|
|
- authentication
|
|
- password
|
|
- username
|
|
type: object
|
|
edgegroups.edgeGroupCreatePayload:
|
|
properties:
|
|
dynamic:
|
|
type: boolean
|
|
endpoints:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
name:
|
|
type: string
|
|
partialMatch:
|
|
type: boolean
|
|
tagIDs:
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
edgegroups.edgeGroupUpdatePayload:
|
|
properties:
|
|
dynamic:
|
|
type: boolean
|
|
endpoints:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
name:
|
|
type: string
|
|
partialMatch:
|
|
type: boolean
|
|
tagIDs:
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
edgejobs.edgeJobCreateFromFileContentPayload:
|
|
properties:
|
|
cronExpression:
|
|
type: string
|
|
endpoints:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
fileContent:
|
|
type: string
|
|
name:
|
|
type: string
|
|
recurring:
|
|
type: boolean
|
|
type: object
|
|
edgejobs.edgeJobCreateFromFilePayload:
|
|
properties:
|
|
cronExpression:
|
|
type: string
|
|
endpoints:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
file:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
name:
|
|
type: string
|
|
recurring:
|
|
type: boolean
|
|
type: object
|
|
edgejobs.edgeJobFileResponse:
|
|
properties:
|
|
FileContent:
|
|
type: string
|
|
type: object
|
|
edgejobs.edgeJobUpdatePayload:
|
|
properties:
|
|
cronExpression:
|
|
type: string
|
|
endpoints:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
fileContent:
|
|
type: string
|
|
name:
|
|
type: string
|
|
recurring:
|
|
type: boolean
|
|
type: object
|
|
edgejobs.fileResponse:
|
|
properties:
|
|
FileContent:
|
|
type: string
|
|
type: object
|
|
edgejobs.taskContainer:
|
|
properties:
|
|
EndpointId:
|
|
type: integer
|
|
Id:
|
|
type: string
|
|
LogsStatus:
|
|
type: integer
|
|
type: object
|
|
edgestacks.stackFileResponse:
|
|
properties:
|
|
StackFileContent:
|
|
type: string
|
|
type: object
|
|
edgestacks.swarmStackFromFileContentPayload:
|
|
properties:
|
|
edgeGroups:
|
|
items:
|
|
description: EdgeGroup Identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
name:
|
|
type: string
|
|
stackFileContent:
|
|
type: string
|
|
type: object
|
|
edgestacks.swarmStackFromFileUploadPayload:
|
|
properties:
|
|
edgeGroups:
|
|
items:
|
|
description: EdgeGroup Identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
name:
|
|
type: string
|
|
stackFileContent:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
edgestacks.swarmStackFromGitRepositoryPayload:
|
|
properties:
|
|
composeFilePathInRepository:
|
|
type: string
|
|
edgeGroups:
|
|
items:
|
|
description: EdgeGroup Identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
name:
|
|
type: string
|
|
repositoryAuthentication:
|
|
type: boolean
|
|
repositoryPassword:
|
|
type: string
|
|
repositoryReferenceName:
|
|
type: string
|
|
repositoryURL:
|
|
type: string
|
|
repositoryUsername:
|
|
type: string
|
|
type: object
|
|
edgestacks.updateEdgeStackPayload:
|
|
properties:
|
|
edgeGroups:
|
|
items:
|
|
description: EdgeGroup Identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
prune:
|
|
type: boolean
|
|
stackFileContent:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
type: object
|
|
endpointedge.configResponse:
|
|
properties:
|
|
name:
|
|
type: string
|
|
prune:
|
|
type: boolean
|
|
stackFileContent:
|
|
type: string
|
|
type: object
|
|
endpointgroups.endpointGroupCreatePayload:
|
|
properties:
|
|
associatedEndpoints:
|
|
description: List of endpoint identifiers that will be part of this group
|
|
example:
|
|
- 1
|
|
- 3
|
|
items:
|
|
type: integer
|
|
type: array
|
|
description:
|
|
description: Endpoint group description
|
|
example: description
|
|
type: string
|
|
name:
|
|
description: Endpoint group name
|
|
example: my-endpoint-group
|
|
type: string
|
|
tagIDs:
|
|
description: List of tag identifiers to which this endpoint group is associated
|
|
example:
|
|
- 1
|
|
- 2
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
required:
|
|
- name
|
|
type: object
|
|
endpointgroups.endpointGroupUpdatePayload:
|
|
properties:
|
|
description:
|
|
description: Endpoint group description
|
|
example: description
|
|
type: string
|
|
name:
|
|
description: Endpoint group name
|
|
example: my-endpoint-group
|
|
type: string
|
|
tagIDs:
|
|
description: List of tag identifiers associated to the endpoint group
|
|
example:
|
|
- 3
|
|
- 4
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
teamAccessPolicies:
|
|
$ref: '#/definitions/portainer.TeamAccessPolicies'
|
|
userAccessPolicies:
|
|
$ref: '#/definitions/portainer.UserAccessPolicies'
|
|
type: object
|
|
endpoints.edgeJobResponse:
|
|
properties:
|
|
CollectLogs:
|
|
description: Whether to collect logs
|
|
example: true
|
|
type: boolean
|
|
CronExpression:
|
|
description: A cron expression to schedule this job
|
|
example: '* * * * *'
|
|
type: string
|
|
Id:
|
|
description: EdgeJob Identifier
|
|
example: 2
|
|
type: integer
|
|
Script:
|
|
description: Script to run
|
|
example: echo hello
|
|
type: string
|
|
Version:
|
|
description: Version of this EdgeJob
|
|
example: 2
|
|
type: integer
|
|
type: object
|
|
endpoints.endpointEdgeStatusInspectResponse:
|
|
properties:
|
|
checkin:
|
|
description: The current value of CheckinInterval
|
|
example: 5
|
|
type: integer
|
|
credentials:
|
|
type: string
|
|
port:
|
|
description: The tunnel port
|
|
example: 8732
|
|
type: integer
|
|
schedules:
|
|
description: List of requests for jobs to run on the endpoint
|
|
items:
|
|
$ref: '#/definitions/endpoints.edgeJobResponse'
|
|
type: array
|
|
stacks:
|
|
description: List of stacks to be deployed on the endpoints
|
|
items:
|
|
$ref: '#/definitions/endpoints.stackStatusResponse'
|
|
type: array
|
|
status:
|
|
description: Status represents the endpoint status
|
|
example: REQUIRED
|
|
type: string
|
|
type: object
|
|
endpoints.endpointUpdatePayload:
|
|
properties:
|
|
azureApplicationID:
|
|
description: Azure application ID
|
|
example: eag7cdo9-o09l-9i83-9dO9-f0b23oe78db4
|
|
type: string
|
|
azureAuthenticationKey:
|
|
description: Azure authentication key
|
|
example: cOrXoK/1D35w8YQ8nH1/8ZGwzz45JIYD5jxHKXEQknk=
|
|
type: string
|
|
azureTenantID:
|
|
description: Azure tenant ID
|
|
example: 34ddc78d-4fel-2358-8cc1-df84c8o839f5
|
|
type: string
|
|
edgeCheckinInterval:
|
|
description: The check in interval for edge agent (in seconds)
|
|
example: 5
|
|
type: integer
|
|
groupID:
|
|
description: Group identifier
|
|
example: 1
|
|
type: integer
|
|
kubernetes:
|
|
$ref: '#/definitions/portainer.KubernetesData'
|
|
description: Associated Kubernetes data
|
|
name:
|
|
description: Name that will be used to identify this endpoint
|
|
example: my-endpoint
|
|
type: string
|
|
publicURL:
|
|
description: |-
|
|
URL or IP address where exposed containers will be reachable.\
|
|
Defaults to URL if not specified
|
|
example: docker.mydomain.tld:2375
|
|
type: string
|
|
status:
|
|
description: The status of the endpoint (1 - up, 2 - down)
|
|
example: 1
|
|
type: integer
|
|
tagIDs:
|
|
description: List of tag identifiers to which this endpoint is associated
|
|
example:
|
|
- 1
|
|
- 2
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
teamAccessPolicies:
|
|
$ref: '#/definitions/portainer.TeamAccessPolicies'
|
|
tls:
|
|
description: Require TLS to connect against this endpoint
|
|
example: true
|
|
type: boolean
|
|
tlsskipClientVerify:
|
|
description: Skip client verification when using TLS
|
|
example: false
|
|
type: boolean
|
|
tlsskipVerify:
|
|
description: Skip server verification when using TLS
|
|
example: false
|
|
type: boolean
|
|
url:
|
|
description: URL or IP address of a Docker host
|
|
example: docker.mydomain.tld:2375
|
|
type: string
|
|
userAccessPolicies:
|
|
$ref: '#/definitions/portainer.UserAccessPolicies'
|
|
type: object
|
|
endpoints.stackStatusResponse:
|
|
properties:
|
|
id:
|
|
description: EdgeStack Identifier
|
|
example: 1
|
|
type: integer
|
|
version:
|
|
description: Version of this stack
|
|
example: 3
|
|
type: integer
|
|
type: object
|
|
motd.motdResponse:
|
|
properties:
|
|
ContentLayout:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
Hash:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
Message:
|
|
type: string
|
|
Style:
|
|
type: string
|
|
Title:
|
|
type: string
|
|
type: object
|
|
portainer.AccessPolicy:
|
|
properties:
|
|
RoleId:
|
|
description: Role identifier. Reference the role that will be associated to
|
|
this access policy
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
portainer.Authorizations:
|
|
additionalProperties:
|
|
type: boolean
|
|
type: object
|
|
portainer.AzureCredentials:
|
|
properties:
|
|
ApplicationID:
|
|
description: Azure application ID
|
|
example: eag7cdo9-o09l-9i83-9dO9-f0b23oe78db4
|
|
type: string
|
|
AuthenticationKey:
|
|
description: Azure authentication key
|
|
example: cOrXoK/1D35w8YQ8nH1/8ZGwzz45JIYD5jxHKXEQknk=
|
|
type: string
|
|
TenantID:
|
|
description: Azure tenant ID
|
|
example: 34ddc78d-4fel-2358-8cc1-df84c8o839f5
|
|
type: string
|
|
type: object
|
|
portainer.CustomTemplate:
|
|
properties:
|
|
CreatedByUserId:
|
|
description: User identifier who created this template
|
|
example: 3
|
|
type: integer
|
|
Description:
|
|
description: Description of the template
|
|
example: High performance web server
|
|
type: string
|
|
EntryPoint:
|
|
description: Path to the Stack file
|
|
example: docker-compose.yml
|
|
type: string
|
|
Id:
|
|
description: CustomTemplate Identifier
|
|
example: 1
|
|
type: integer
|
|
Logo:
|
|
description: URL of the template's logo
|
|
example: https://cloudinovasi.id/assets/img/logos/nginx.png
|
|
type: string
|
|
Note:
|
|
description: A note that will be displayed in the UI. Supports HTML content
|
|
example: This is my <b>custom</b> template
|
|
type: string
|
|
Platform:
|
|
description: |-
|
|
Platform associated to the template.
|
|
Valid values are: 1 - 'linux', 2 - 'windows'
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
ProjectPath:
|
|
description: Path on disk to the repository hosting the Stack file
|
|
example: /data/custom_template/3
|
|
type: string
|
|
ResourceControl:
|
|
$ref: '#/definitions/portainer.ResourceControl'
|
|
Title:
|
|
description: Title of the template
|
|
example: Nginx
|
|
type: string
|
|
Type:
|
|
description: Type of created stack (1 - swarm, 2 - compose)
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
portainer.DockerHub:
|
|
properties:
|
|
Authentication:
|
|
description: Is authentication against DockerHub enabled
|
|
example: true
|
|
type: boolean
|
|
Password:
|
|
description: Password used to authenticate against the DockerHub
|
|
example: passwd
|
|
type: string
|
|
Username:
|
|
description: Username used to authenticate against the DockerHub
|
|
example: user
|
|
type: string
|
|
type: object
|
|
portainer.DockerSnapshot:
|
|
properties:
|
|
DockerSnapshotRaw:
|
|
$ref: '#/definitions/portainer.DockerSnapshotRaw'
|
|
DockerVersion:
|
|
type: string
|
|
HealthyContainerCount:
|
|
type: integer
|
|
ImageCount:
|
|
type: integer
|
|
RunningContainerCount:
|
|
type: integer
|
|
ServiceCount:
|
|
type: integer
|
|
StackCount:
|
|
type: integer
|
|
StoppedContainerCount:
|
|
type: integer
|
|
Swarm:
|
|
type: boolean
|
|
Time:
|
|
type: integer
|
|
TotalCPU:
|
|
type: integer
|
|
TotalMemory:
|
|
type: integer
|
|
UnhealthyContainerCount:
|
|
type: integer
|
|
VolumeCount:
|
|
type: integer
|
|
type: object
|
|
portainer.DockerSnapshotRaw:
|
|
properties:
|
|
Containers:
|
|
type: object
|
|
Images:
|
|
type: object
|
|
Info:
|
|
type: object
|
|
Networks:
|
|
type: object
|
|
Version:
|
|
type: object
|
|
Volumes:
|
|
type: object
|
|
type: object
|
|
portainer.EdgeGroup:
|
|
properties:
|
|
Dynamic:
|
|
type: boolean
|
|
Endpoints:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
Id:
|
|
description: EdgeGroup Identifier
|
|
example: 1
|
|
type: integer
|
|
Name:
|
|
type: string
|
|
PartialMatch:
|
|
type: boolean
|
|
TagIds:
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
portainer.EdgeJob:
|
|
properties:
|
|
Created:
|
|
type: integer
|
|
CronExpression:
|
|
type: string
|
|
Endpoints:
|
|
additionalProperties:
|
|
$ref: '#/definitions/portainer.EdgeJobEndpointMeta'
|
|
type: object
|
|
Id:
|
|
description: EdgeJob Identifier
|
|
example: 1
|
|
type: integer
|
|
Name:
|
|
type: string
|
|
Recurring:
|
|
type: boolean
|
|
ScriptPath:
|
|
type: string
|
|
Version:
|
|
type: integer
|
|
type: object
|
|
portainer.EdgeJobEndpointMeta:
|
|
properties:
|
|
collectLogs:
|
|
type: boolean
|
|
logsStatus:
|
|
type: integer
|
|
type: object
|
|
portainer.EdgeStack:
|
|
properties:
|
|
CreationDate:
|
|
type: integer
|
|
EdgeGroups:
|
|
items:
|
|
description: EdgeGroup Identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
EntryPoint:
|
|
type: string
|
|
Id:
|
|
description: EdgeStack Identifier
|
|
example: 1
|
|
type: integer
|
|
Name:
|
|
type: string
|
|
ProjectPath:
|
|
type: string
|
|
Prune:
|
|
type: boolean
|
|
Status:
|
|
additionalProperties:
|
|
$ref: '#/definitions/portainer.EdgeStackStatus'
|
|
type: object
|
|
Version:
|
|
type: integer
|
|
type: object
|
|
portainer.EdgeStackStatus:
|
|
properties:
|
|
EndpointID:
|
|
type: integer
|
|
Error:
|
|
type: string
|
|
Type:
|
|
type: integer
|
|
type: object
|
|
portainer.Endpoint:
|
|
properties:
|
|
AuthorizedTeams:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
AuthorizedUsers:
|
|
description: Deprecated in DBVersion == 18
|
|
items:
|
|
description: User identifier who created this template
|
|
example: 3
|
|
type: integer
|
|
type: array
|
|
AzureCredentials:
|
|
$ref: '#/definitions/portainer.AzureCredentials'
|
|
EdgeCheckinInterval:
|
|
description: The check in interval for edge agent (in seconds)
|
|
example: 5
|
|
type: integer
|
|
EdgeID:
|
|
description: The identifier of the edge agent associated with this endpoint
|
|
type: string
|
|
EdgeKey:
|
|
description: The key which is used to map the agent to Portainer
|
|
type: string
|
|
GroupId:
|
|
description: Endpoint group identifier
|
|
example: 1
|
|
type: integer
|
|
Id:
|
|
description: Endpoint Identifier
|
|
example: 1
|
|
type: integer
|
|
Kubernetes:
|
|
$ref: '#/definitions/portainer.KubernetesData'
|
|
description: Associated Kubernetes data
|
|
Name:
|
|
description: Endpoint name
|
|
example: my-endpoint
|
|
type: string
|
|
PublicURL:
|
|
description: URL or IP address where exposed containers will be reachable
|
|
example: docker.mydomain.tld:2375
|
|
type: string
|
|
Snapshots:
|
|
description: List of snapshots
|
|
items:
|
|
$ref: '#/definitions/portainer.DockerSnapshot'
|
|
type: array
|
|
Status:
|
|
description: The status of the endpoint (1 - up, 2 - down)
|
|
example: 1
|
|
type: integer
|
|
TLS:
|
|
description: |-
|
|
Deprecated fields
|
|
Deprecated in DBVersion == 4
|
|
type: boolean
|
|
TLSCACert:
|
|
type: string
|
|
TLSCert:
|
|
type: string
|
|
TLSConfig:
|
|
$ref: '#/definitions/portainer.TLSConfiguration'
|
|
TLSKey:
|
|
type: string
|
|
TagIds:
|
|
description: List of tag identifiers to which this endpoint is associated
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
Tags:
|
|
description: Deprecated in DBVersion == 22
|
|
items:
|
|
type: string
|
|
type: array
|
|
TeamAccessPolicies:
|
|
$ref: '#/definitions/portainer.TeamAccessPolicies'
|
|
description: List of team identifiers authorized to connect to this endpoint
|
|
Type:
|
|
description: Endpoint environment type. 1 for a Docker environment, 2 for
|
|
an agent on Docker environment or 3 for an Azure environment.
|
|
example: 1
|
|
type: integer
|
|
URL:
|
|
description: URL or IP address of the Docker host associated to this endpoint
|
|
example: docker.mydomain.tld:2375
|
|
type: string
|
|
UserAccessPolicies:
|
|
$ref: '#/definitions/portainer.UserAccessPolicies'
|
|
description: List of user identifiers authorized to connect to this endpoint
|
|
type: object
|
|
portainer.EndpointAuthorizations:
|
|
additionalProperties:
|
|
$ref: '#/definitions/portainer.Authorizations'
|
|
type: object
|
|
portainer.EndpointGroup:
|
|
properties:
|
|
AuthorizedTeams:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
AuthorizedUsers:
|
|
description: Deprecated in DBVersion == 18
|
|
items:
|
|
description: User identifier who created this template
|
|
example: 3
|
|
type: integer
|
|
type: array
|
|
Description:
|
|
description: Description associated to the endpoint group
|
|
example: Endpoint group description
|
|
type: string
|
|
Id:
|
|
description: Endpoint group Identifier
|
|
example: 1
|
|
type: integer
|
|
Labels:
|
|
description: Deprecated fields
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
Name:
|
|
description: Endpoint group name
|
|
example: my-endpoint-group
|
|
type: string
|
|
TagIds:
|
|
description: List of tags associated to this endpoint group
|
|
items:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: array
|
|
Tags:
|
|
description: Deprecated in DBVersion == 22
|
|
items:
|
|
type: string
|
|
type: array
|
|
TeamAccessPolicies:
|
|
$ref: '#/definitions/portainer.TeamAccessPolicies'
|
|
UserAccessPolicies:
|
|
$ref: '#/definitions/portainer.UserAccessPolicies'
|
|
type: object
|
|
portainer.GitlabRegistryData:
|
|
properties:
|
|
InstanceURL:
|
|
type: string
|
|
ProjectId:
|
|
type: integer
|
|
ProjectPath:
|
|
type: string
|
|
type: object
|
|
portainer.KubernetesConfiguration:
|
|
properties:
|
|
IngressClasses:
|
|
items:
|
|
$ref: '#/definitions/portainer.KubernetesIngressClassConfig'
|
|
type: array
|
|
StorageClasses:
|
|
items:
|
|
$ref: '#/definitions/portainer.KubernetesStorageClassConfig'
|
|
type: array
|
|
UseLoadBalancer:
|
|
type: boolean
|
|
UseServerMetrics:
|
|
type: boolean
|
|
RestrictDefaultNamespace:
|
|
type: boolean
|
|
type: object
|
|
portainer.KubernetesData:
|
|
properties:
|
|
Configuration:
|
|
$ref: '#/definitions/portainer.KubernetesConfiguration'
|
|
Snapshots:
|
|
items:
|
|
$ref: '#/definitions/portainer.KubernetesSnapshot'
|
|
type: array
|
|
type: object
|
|
portainer.KubernetesIngressClassConfig:
|
|
properties:
|
|
Name:
|
|
type: string
|
|
Type:
|
|
type: string
|
|
type: object
|
|
portainer.KubernetesSnapshot:
|
|
properties:
|
|
KubernetesVersion:
|
|
type: string
|
|
NodeCount:
|
|
type: integer
|
|
Time:
|
|
type: integer
|
|
TotalCPU:
|
|
type: integer
|
|
TotalMemory:
|
|
type: integer
|
|
type: object
|
|
portainer.KubernetesStorageClassConfig:
|
|
properties:
|
|
AccessModes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
AllowVolumeExpansion:
|
|
type: boolean
|
|
Name:
|
|
type: string
|
|
Provisioner:
|
|
type: string
|
|
type: object
|
|
portainer.InternalAuthSettings:
|
|
properties:
|
|
RequiredPasswordLength:
|
|
description: The minimum character length a user can set their password
|
|
example: 12
|
|
type: integer
|
|
portainer.LDAPGroupSearchSettings:
|
|
properties:
|
|
GroupAttribute:
|
|
description: LDAP attribute which denotes the group membership
|
|
example: member
|
|
type: string
|
|
GroupBaseDN:
|
|
description: The distinguished name of the element from which the LDAP server
|
|
will search for groups
|
|
example: dc=ldap,dc=domain,dc=tld
|
|
type: string
|
|
GroupFilter:
|
|
description: The LDAP search filter used to select group elements, optional
|
|
example: (objectClass=account
|
|
type: string
|
|
type: object
|
|
portainer.LDAPSearchSettings:
|
|
properties:
|
|
BaseDN:
|
|
description: The distinguished name of the element from which the LDAP server
|
|
will search for users
|
|
example: dc=ldap,dc=domain,dc=tld
|
|
type: string
|
|
Filter:
|
|
description: Optional LDAP search filter used to select user elements
|
|
example: (objectClass=account)
|
|
type: string
|
|
UserNameAttribute:
|
|
description: LDAP attribute which denotes the username
|
|
example: uid
|
|
type: string
|
|
type: object
|
|
portainer.LDAPSettings:
|
|
properties:
|
|
AnonymousMode:
|
|
description: Enable this option if the server is configured for Anonymous
|
|
access. When enabled, ReaderDN and Password will not be used
|
|
example: true
|
|
type: boolean
|
|
AutoCreateUsers:
|
|
description: Automatically provision users and assign them to matching LDAP
|
|
group names
|
|
example: true
|
|
type: boolean
|
|
GroupSearchSettings:
|
|
items:
|
|
$ref: '#/definitions/portainer.LDAPGroupSearchSettings'
|
|
type: array
|
|
Password:
|
|
description: Password of the account that will be used to search users
|
|
example: readonly-password
|
|
type: string
|
|
ReaderDN:
|
|
description: Account that will be used to search for users
|
|
example: cn=readonly-account,dc=ldap,dc=domain,dc=tld
|
|
type: string
|
|
SearchSettings:
|
|
items:
|
|
$ref: '#/definitions/portainer.LDAPSearchSettings'
|
|
type: array
|
|
StartTLS:
|
|
description: Whether LDAP connection should use StartTLS
|
|
example: true
|
|
type: boolean
|
|
TLSConfig:
|
|
$ref: '#/definitions/portainer.TLSConfiguration'
|
|
URL:
|
|
description: URL or IP address of the LDAP server
|
|
example: myldap.domain.tld:389
|
|
type: string
|
|
type: object
|
|
portainer.OAuthSettings:
|
|
properties:
|
|
AccessTokenURI:
|
|
type: string
|
|
AuthorizationURI:
|
|
type: string
|
|
ClientID:
|
|
type: string
|
|
ClientSecret:
|
|
type: string
|
|
DefaultTeamID:
|
|
type: integer
|
|
OAuthAutoCreateUsers:
|
|
type: boolean
|
|
RedirectURI:
|
|
type: string
|
|
ResourceURI:
|
|
type: string
|
|
Scopes:
|
|
type: string
|
|
UserIdentifier:
|
|
type: string
|
|
type: object
|
|
portainer.Pair:
|
|
properties:
|
|
name:
|
|
example: name
|
|
type: string
|
|
value:
|
|
example: value
|
|
type: string
|
|
type: object
|
|
portainer.Registry:
|
|
properties:
|
|
Authentication:
|
|
description: Is authentication against this registry enabled
|
|
example: true
|
|
type: boolean
|
|
AuthorizedTeams:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
AuthorizedUsers:
|
|
description: |-
|
|
Deprecated fields
|
|
Deprecated in DBVersion == 18
|
|
items:
|
|
description: User identifier who created this template
|
|
example: 3
|
|
type: integer
|
|
type: array
|
|
Gitlab:
|
|
$ref: '#/definitions/portainer.GitlabRegistryData'
|
|
Id:
|
|
description: Registry Identifier
|
|
example: 1
|
|
type: integer
|
|
ManagementConfiguration:
|
|
$ref: '#/definitions/portainer.RegistryManagementConfiguration'
|
|
Name:
|
|
description: Registry Name
|
|
example: my-registry
|
|
type: string
|
|
Password:
|
|
description: Password used to authenticate against this registry
|
|
example: registry_password
|
|
type: string
|
|
TeamAccessPolicies:
|
|
$ref: '#/definitions/portainer.TeamAccessPolicies'
|
|
Type:
|
|
description: Registry Type (1 - Quay, 2 - Azure, 3 - Custom, 4 - Gitlab, 5 - ProGet)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
type: integer
|
|
URL:
|
|
description: URL or IP address of the Docker registry
|
|
example: registry.mydomain.tld:2375
|
|
type: string
|
|
BaseURL:
|
|
description: Base URL or IP address of the ProGet registry
|
|
example: registry.mydomain.tld:2375
|
|
type: string
|
|
UserAccessPolicies:
|
|
$ref: '#/definitions/portainer.UserAccessPolicies'
|
|
Username:
|
|
description: Username used to authenticate against this registry
|
|
example: registry user
|
|
type: string
|
|
type: object
|
|
portainer.RegistryManagementConfiguration:
|
|
properties:
|
|
Authentication:
|
|
type: boolean
|
|
Password:
|
|
type: string
|
|
TLSConfig:
|
|
$ref: '#/definitions/portainer.TLSConfiguration'
|
|
Type:
|
|
type: integer
|
|
Username:
|
|
type: string
|
|
type: object
|
|
portainer.ResourceControl:
|
|
properties:
|
|
AccessLevel:
|
|
type: integer
|
|
AdministratorsOnly:
|
|
description: Permit access to resource only to admins
|
|
example: true
|
|
type: boolean
|
|
Id:
|
|
description: ResourceControl Identifier
|
|
example: 1
|
|
type: integer
|
|
OwnerId:
|
|
description: |-
|
|
Deprecated fields
|
|
Deprecated in DBVersion == 2
|
|
type: integer
|
|
Public:
|
|
description: Permit access to the associated resource to any user
|
|
example: true
|
|
type: boolean
|
|
ResourceId:
|
|
description: |-
|
|
Docker resource identifier on which access control will be applied.\
|
|
In the case of a resource control applied to a stack, use the stack name as identifier
|
|
example: 617c5f22bb9b023d6daab7cba43a57576f83492867bc767d1c59416b065e5f08
|
|
type: string
|
|
SubResourceIds:
|
|
description: List of Docker resources that will inherit this access control
|
|
example:
|
|
- 617c5f22bb9b023d6daab7cba43a57576f83492867bc767d1c59416b065e5f08
|
|
items:
|
|
type: string
|
|
type: array
|
|
System:
|
|
type: boolean
|
|
TeamAccesses:
|
|
items:
|
|
$ref: '#/definitions/portainer.TeamResourceAccess'
|
|
type: array
|
|
Type:
|
|
description: |-
|
|
Type of Docker resource. Valid values are: 1- container, 2 -service
|
|
3 - volume, 4 - secret, 5 - stack, 6 - config or 7 - custom template
|
|
example: 1
|
|
type: integer
|
|
UserAccesses:
|
|
items:
|
|
$ref: '#/definitions/portainer.UserResourceAccess'
|
|
type: array
|
|
type: object
|
|
portainer.Role:
|
|
properties:
|
|
Authorizations:
|
|
$ref: '#/definitions/portainer.Authorizations'
|
|
description: Authorizations associated to a role
|
|
Description:
|
|
description: Role description
|
|
example: Read-only access of all resources in an endpoint
|
|
type: string
|
|
Id:
|
|
description: Role Identifier
|
|
example: 1
|
|
type: integer
|
|
Name:
|
|
description: Role name
|
|
example: HelpDesk
|
|
type: string
|
|
Priority:
|
|
type: integer
|
|
type: object
|
|
portainer.Settings:
|
|
properties:
|
|
AllowBindMountsForRegularUsers:
|
|
description: Whether non-administrator should be able to use bind mounts when
|
|
creating containers
|
|
example: false
|
|
type: boolean
|
|
AllowContainerCapabilitiesForRegularUsers:
|
|
description: Whether non-administrator should be able to use container capabilities
|
|
type: boolean
|
|
AllowDeviceMappingForRegularUsers:
|
|
description: Whether non-administrator should be able to use device mapping
|
|
type: boolean
|
|
AllowHostNamespaceForRegularUsers:
|
|
description: Whether non-administrator should be able to use the host pid
|
|
type: boolean
|
|
AllowPrivilegedModeForRegularUsers:
|
|
description: Whether non-administrator should be able to use privileged mode
|
|
when creating containers
|
|
example: false
|
|
type: boolean
|
|
AllowStackManagementForRegularUsers:
|
|
description: Whether non-administrator should be able to manage stacks
|
|
type: boolean
|
|
AllowVolumeBrowserForRegularUsers:
|
|
description: Whether non-administrator should be able to browse volumes
|
|
type: boolean
|
|
AuthenticationMethod:
|
|
description: 'Active authentication method for the Portainer instance. Valid
|
|
values are: 1 for internal, 2 for LDAP, or 3 for oauth'
|
|
example: 1
|
|
type: integer
|
|
BlackListedLabels:
|
|
description: A list of label name & value that will be used to hide containers
|
|
when querying containers
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
EdgeAgentCheckinInterval:
|
|
description: The default check in interval for edge agent (in seconds)
|
|
example: 5
|
|
type: integer
|
|
EnableEdgeComputeFeatures:
|
|
description: Whether edge compute features are enabled
|
|
type: boolean
|
|
EnableHostManagementFeatures:
|
|
description: Whether host management features are enabled
|
|
type: boolean
|
|
EnableTelemetry:
|
|
description: Whether telemetry is enabled
|
|
example: false
|
|
type: boolean
|
|
InternalAuthSettings:
|
|
$ref: '#/definitions/portainer.InternalAuthSettings'
|
|
LDAPSettings:
|
|
$ref: '#/definitions/portainer.LDAPSettings'
|
|
LogoURL:
|
|
description: URL to a logo that will be displayed on the login page as well
|
|
as on top of the sidebar. Will use default Portainer logo when value is
|
|
empty string
|
|
example: https://mycompany.mydomain.tld/logo.png
|
|
type: string
|
|
OAuthSettings:
|
|
$ref: '#/definitions/portainer.OAuthSettings'
|
|
SnapshotInterval:
|
|
description: The interval in which endpoint snapshots are created
|
|
example: 5m
|
|
type: string
|
|
TemplatesURL:
|
|
description: URL to the templates that will be displayed in the UI when navigating
|
|
to App Templates
|
|
example: https://raw.githubusercontent.com/portainer/templates/master/templates.json
|
|
type: string
|
|
UserSessionTimeout:
|
|
description: The duration of a user session
|
|
example: 5m
|
|
type: string
|
|
displayDonationHeader:
|
|
description: Deprecated fields
|
|
type: boolean
|
|
displayExternalContributors:
|
|
type: boolean
|
|
type: object
|
|
portainer.Stack:
|
|
properties:
|
|
EndpointId:
|
|
description: Endpoint identifier. Reference the endpoint that will be used
|
|
for deployment
|
|
example: 1
|
|
type: integer
|
|
EntryPoint:
|
|
description: Path to the Stack file
|
|
example: docker-compose.yml
|
|
type: string
|
|
Env:
|
|
description: A list of environment variables used during stack deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
Id:
|
|
description: Stack Identifier
|
|
example: 1
|
|
type: integer
|
|
Name:
|
|
description: Stack name
|
|
example: myStack
|
|
type: string
|
|
ResourceControl:
|
|
$ref: '#/definitions/portainer.ResourceControl'
|
|
Status:
|
|
description: Stack status (1 - active, 2 - inactive)
|
|
example: 1
|
|
type: integer
|
|
SwarmId:
|
|
description: Cluster identifier of the Swarm cluster where the stack is deployed
|
|
example: jpofkc0i9uo9wtx1zesuk649w
|
|
type: string
|
|
Type:
|
|
description: Stack type. 1 for a Swarm stack, 2 for a Compose stack
|
|
example: 2
|
|
type: integer
|
|
createdBy:
|
|
description: The username which created this stack
|
|
example: admin
|
|
type: string
|
|
creationDate:
|
|
description: The date in unix time when stack was created
|
|
example: 1587399600
|
|
type: integer
|
|
projectPath:
|
|
description: Path on disk to the repository hosting the Stack file
|
|
example: /data/compose/myStack_jpofkc0i9uo9wtx1zesuk649w
|
|
type: string
|
|
updateDate:
|
|
description: The date in unix time when stack was last updated
|
|
example: 1587399600
|
|
type: integer
|
|
updatedBy:
|
|
description: The username which last updated this stack
|
|
example: bob
|
|
type: string
|
|
type: object
|
|
portainer.Status:
|
|
properties:
|
|
Version:
|
|
description: Portainer API version
|
|
example: 2.0.0
|
|
type: string
|
|
type: object
|
|
portainer.TLSConfiguration:
|
|
properties:
|
|
TLS:
|
|
description: Use TLS
|
|
example: true
|
|
type: boolean
|
|
TLSCACert:
|
|
description: Path to the TLS CA certificate file
|
|
example: /data/tls/ca.pem
|
|
type: string
|
|
TLSCert:
|
|
description: Path to the TLS client certificate file
|
|
example: /data/tls/cert.pem
|
|
type: string
|
|
TLSKey:
|
|
description: Path to the TLS client key file
|
|
example: /data/tls/key.pem
|
|
type: string
|
|
TLSSkipVerify:
|
|
description: Skip the verification of the server TLS certificate
|
|
example: false
|
|
type: boolean
|
|
type: object
|
|
portainer.Tag:
|
|
properties:
|
|
EndpointGroups:
|
|
additionalProperties:
|
|
type: boolean
|
|
description: A set of endpoint group ids that have this tag
|
|
type: object
|
|
Endpoints:
|
|
additionalProperties:
|
|
type: boolean
|
|
description: A set of endpoint ids that have this tag
|
|
type: object
|
|
Name:
|
|
description: Tag name
|
|
example: org/acme
|
|
type: string
|
|
id:
|
|
description: Tag identifier
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
portainer.Team:
|
|
properties:
|
|
Id:
|
|
description: Team Identifier
|
|
example: 1
|
|
type: integer
|
|
Name:
|
|
description: Team name
|
|
example: developers
|
|
type: string
|
|
type: object
|
|
portainer.TeamAccessPolicies:
|
|
additionalProperties:
|
|
$ref: '#/definitions/portainer.AccessPolicy'
|
|
type: object
|
|
portainer.TeamMembership:
|
|
properties:
|
|
Id:
|
|
description: Membership Identifier
|
|
example: 1
|
|
type: integer
|
|
Role:
|
|
description: Team role (1 for team leader and 2 for team member)
|
|
example: 1
|
|
type: integer
|
|
TeamID:
|
|
description: Team identifier
|
|
example: 1
|
|
type: integer
|
|
UserID:
|
|
description: User identifier
|
|
example: 1
|
|
type: integer
|
|
type: object
|
|
portainer.TeamResourceAccess:
|
|
properties:
|
|
AccessLevel:
|
|
type: integer
|
|
TeamId:
|
|
type: integer
|
|
type: object
|
|
portainer.Template:
|
|
properties:
|
|
Id:
|
|
description: |-
|
|
Mandatory container/stack fields
|
|
Template Identifier
|
|
example: 1
|
|
type: integer
|
|
administrator_only:
|
|
description: Whether the template should be available to administrators only
|
|
example: true
|
|
type: boolean
|
|
categories:
|
|
description: A list of categories associated to the template
|
|
example:
|
|
- database
|
|
items:
|
|
type: string
|
|
type: array
|
|
command:
|
|
description: The command that will be executed in a container template
|
|
example: ls -lah
|
|
type: string
|
|
description:
|
|
description: Description of the template
|
|
example: High performance web server
|
|
type: string
|
|
env:
|
|
description: A list of environment variables used during the template deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.TemplateEnv'
|
|
type: array
|
|
hostname:
|
|
description: Container hostname
|
|
example: mycontainer
|
|
type: string
|
|
image:
|
|
description: |-
|
|
Mandatory container fields
|
|
Image associated to a container template. Mandatory for a container template
|
|
example: nginx:latest
|
|
type: string
|
|
interactive:
|
|
description: |-
|
|
Whether the container should be started in
|
|
interactive mode (-i -t equivalent on the CLI)
|
|
example: true
|
|
type: boolean
|
|
labels:
|
|
description: Container labels
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
logo:
|
|
description: URL of the template's logo
|
|
example: https://cloudinovasi.id/assets/img/logos/nginx.png
|
|
type: string
|
|
name:
|
|
description: |-
|
|
Optional stack/container fields
|
|
Default name for the stack/container to be used on deployment
|
|
example: mystackname
|
|
type: string
|
|
network:
|
|
description: Name of a network that will be used on container deployment if
|
|
it exists inside the environment
|
|
example: mynet
|
|
type: string
|
|
note:
|
|
description: A note that will be displayed in the UI. Supports HTML content
|
|
example: This is my <b>custom</b> template
|
|
type: string
|
|
platform:
|
|
description: |-
|
|
Platform associated to the template.
|
|
Valid values are: 'linux', 'windows' or leave empty for multi-platform
|
|
example: linux
|
|
type: string
|
|
ports:
|
|
description: A list of ports exposed by the container
|
|
example:
|
|
- 8080:80/tcp
|
|
items:
|
|
type: string
|
|
type: array
|
|
privileged:
|
|
description: Whether the container should be started in privileged mode
|
|
example: true
|
|
type: boolean
|
|
registry:
|
|
description: |-
|
|
Optional container fields
|
|
The URL of a registry associated to the image for a container template
|
|
example: quay.io
|
|
type: string
|
|
repository:
|
|
$ref: '#/definitions/portainer.TemplateRepository'
|
|
description: Mandatory stack fields
|
|
restart_policy:
|
|
description: Container restart policy
|
|
example: on-failure
|
|
type: string
|
|
stackFile:
|
|
description: |-
|
|
Mandatory Edge stack fields
|
|
Stack file used for this template
|
|
type: string
|
|
title:
|
|
description: Title of the template
|
|
example: Nginx
|
|
type: string
|
|
type:
|
|
description: 'Template type. Valid values are: 1 (container), 2 (Swarm stack)
|
|
or 3 (Compose stack)'
|
|
example: 1
|
|
type: integer
|
|
volumes:
|
|
description: A list of volumes used during the container template deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.TemplateVolume'
|
|
type: array
|
|
type: object
|
|
portainer.TemplateEnv:
|
|
properties:
|
|
default:
|
|
description: Default value that will be set for the variable
|
|
example: default_value
|
|
type: string
|
|
description:
|
|
description: Content of the tooltip that will be generated in the UI
|
|
example: MySQL root account password
|
|
type: string
|
|
label:
|
|
description: Text for the label that will be generated in the UI
|
|
example: Root password
|
|
type: string
|
|
name:
|
|
description: name of the environment variable
|
|
example: MYSQL_ROOT_PASSWORD
|
|
type: string
|
|
preset:
|
|
description: If set to true, will not generate any input for this variable
|
|
in the UI
|
|
example: false
|
|
type: boolean
|
|
select:
|
|
description: A list of name/value that will be used to generate a dropdown
|
|
in the UI
|
|
items:
|
|
$ref: '#/definitions/portainer.TemplateEnvSelect'
|
|
type: array
|
|
type: object
|
|
portainer.TemplateEnvSelect:
|
|
properties:
|
|
default:
|
|
description: Will set this choice as the default choice
|
|
example: false
|
|
type: boolean
|
|
text:
|
|
description: Some text that will displayed as a choice
|
|
example: text value
|
|
type: string
|
|
value:
|
|
description: A value that will be associated to the choice
|
|
example: value
|
|
type: string
|
|
type: object
|
|
portainer.TemplateRepository:
|
|
properties:
|
|
stackfile:
|
|
description: Path to the stack file inside the git repository
|
|
example: ./subfolder/docker-compose.yml
|
|
type: string
|
|
url:
|
|
description: URL of a git repository used to deploy a stack template. Mandatory
|
|
for a Swarm/Compose stack template
|
|
example: https://github.com/portainer/portainer-compose
|
|
type: string
|
|
type: object
|
|
portainer.TemplateVolume:
|
|
properties:
|
|
bind:
|
|
description: Path on the host
|
|
example: /tmp
|
|
type: string
|
|
container:
|
|
description: Path inside the container
|
|
example: /data
|
|
type: string
|
|
readonly:
|
|
description: Whether the volume used should be readonly
|
|
example: true
|
|
type: boolean
|
|
type: object
|
|
portainer.User:
|
|
properties:
|
|
EndpointAuthorizations:
|
|
$ref: '#/definitions/portainer.EndpointAuthorizations'
|
|
Id:
|
|
description: User Identifier
|
|
example: 1
|
|
type: integer
|
|
Password:
|
|
example: passwd
|
|
type: string
|
|
PortainerAuthorizations:
|
|
$ref: '#/definitions/portainer.Authorizations'
|
|
description: |-
|
|
Deprecated fields
|
|
Deprecated in DBVersion == 25
|
|
Role:
|
|
description: User role (1 for administrator account and 2 for regular account)
|
|
example: 1
|
|
type: integer
|
|
Username:
|
|
example: bob
|
|
type: string
|
|
type: object
|
|
portainer.UserAccessPolicies:
|
|
additionalProperties:
|
|
$ref: '#/definitions/portainer.AccessPolicy'
|
|
type: object
|
|
portainer.UserResourceAccess:
|
|
properties:
|
|
AccessLevel:
|
|
type: integer
|
|
UserId:
|
|
type: integer
|
|
type: object
|
|
portainer.Webhook:
|
|
properties:
|
|
EndpointId:
|
|
type: integer
|
|
Id:
|
|
description: Webhook Identifier
|
|
example: 1
|
|
type: integer
|
|
ResourceId:
|
|
type: string
|
|
Token:
|
|
type: string
|
|
Type:
|
|
type: integer
|
|
type: object
|
|
registries.registryConfigurePayload:
|
|
properties:
|
|
authentication:
|
|
description: Is authentication against this registry enabled
|
|
example: false
|
|
type: boolean
|
|
password:
|
|
description: Password used to authenticate against this registry. required
|
|
when Authentication is true
|
|
example: registry_password
|
|
type: string
|
|
tls:
|
|
description: Use TLS
|
|
example: true
|
|
type: boolean
|
|
tlscacertFile:
|
|
description: The TLS CA certificate file
|
|
items:
|
|
type: integer
|
|
type: array
|
|
tlscertFile:
|
|
description: The TLS client certificate file
|
|
items:
|
|
type: integer
|
|
type: array
|
|
tlskeyFile:
|
|
description: The TLS client key file
|
|
items:
|
|
type: integer
|
|
type: array
|
|
tlsskipVerify:
|
|
description: Skip the verification of the server TLS certificate
|
|
example: false
|
|
type: boolean
|
|
username:
|
|
description: Username used to authenticate against this registry. Required
|
|
when Authentication is true
|
|
example: registry_user
|
|
type: string
|
|
required:
|
|
- authentication
|
|
type: object
|
|
registries.registryCreatePayload:
|
|
properties:
|
|
authentication:
|
|
description: Is authentication against this registry enabled
|
|
example: false
|
|
type: boolean
|
|
gitlab:
|
|
$ref: '#/definitions/portainer.GitlabRegistryData'
|
|
description: Gitlab specific details, required when type = 4
|
|
name:
|
|
description: Name that will be used to identify this registry
|
|
example: my-registry
|
|
type: string
|
|
password:
|
|
description: Password used to authenticate against this registry. required
|
|
when Authentication is true
|
|
example: registry_password
|
|
type: string
|
|
type:
|
|
description: 'Registry Type. Valid values are: 1 (Quay.io), 2 (Azure container
|
|
registry), 3 (custom registry), 4 (Gitlab registry) or 5 (ProGet registry)'
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
example: 1
|
|
type: integer
|
|
url:
|
|
description: URL or IP address of the Docker registry
|
|
example: registry.mydomain.tld:2375
|
|
type: string
|
|
baseUrl:
|
|
description: Base URL or IP address of the ProGet registry
|
|
example: registry.mydomain.tld:2375
|
|
type: string
|
|
username:
|
|
description: Username used to authenticate against this registry. Required
|
|
when Authentication is true
|
|
example: registry_user
|
|
type: string
|
|
required:
|
|
- authentication
|
|
- name
|
|
- type
|
|
- url
|
|
type: object
|
|
registries.registryUpdatePayload:
|
|
properties:
|
|
authentication:
|
|
description: Is authentication against this registry enabled
|
|
example: false
|
|
type: boolean
|
|
name:
|
|
description: Name that will be used to identify this registry
|
|
example: my-registry
|
|
type: string
|
|
password:
|
|
description: Password used to authenticate against this registry. required
|
|
when Authentication is true
|
|
example: registry_password
|
|
type: string
|
|
teamAccessPolicies:
|
|
$ref: '#/definitions/portainer.TeamAccessPolicies'
|
|
url:
|
|
description: URL or IP address of the Docker registry
|
|
example: registry.mydomain.tld:2375
|
|
type: string
|
|
baseUrl:
|
|
description: Base URL or IP address of the ProGet registry
|
|
example: registry.mydomain.tld:2375
|
|
type: string
|
|
userAccessPolicies:
|
|
$ref: '#/definitions/portainer.UserAccessPolicies'
|
|
username:
|
|
description: Username used to authenticate against this registry. Required
|
|
when Authentication is true
|
|
example: registry_user
|
|
type: string
|
|
required:
|
|
- authentication
|
|
- name
|
|
- url
|
|
type: object
|
|
resourcecontrols.resourceControlCreatePayload:
|
|
properties:
|
|
administratorsOnly:
|
|
description: Permit access to resource only to admins
|
|
example: true
|
|
type: boolean
|
|
public:
|
|
description: Permit access to the associated resource to any user
|
|
example: true
|
|
type: boolean
|
|
resourceID:
|
|
example: 617c5f22bb9b023d6daab7cba43a57576f83492867bc767d1c59416b065e5f08
|
|
type: string
|
|
subResourceIDs:
|
|
description: List of Docker resources that will inherit this access control
|
|
example:
|
|
- 617c5f22bb9b023d6daab7cba43a57576f83492867bc767d1c59416b065e5f08
|
|
items:
|
|
type: string
|
|
type: array
|
|
teams:
|
|
description: List of team identifiers with access to the associated resource
|
|
example:
|
|
- 56
|
|
- 7
|
|
items:
|
|
type: integer
|
|
type: array
|
|
type:
|
|
description: |-
|
|
Type of Docker resource. Valid values are: container, volume\
|
|
service, secret, config or stack
|
|
example: container
|
|
type: string
|
|
users:
|
|
description: List of user identifiers with access to the associated resource
|
|
example:
|
|
- 1
|
|
- 4
|
|
items:
|
|
type: integer
|
|
type: array
|
|
required:
|
|
- resourceID
|
|
- type
|
|
type: object
|
|
resourcecontrols.resourceControlUpdatePayload:
|
|
properties:
|
|
administratorsOnly:
|
|
description: Permit access to resource only to admins
|
|
example: true
|
|
type: boolean
|
|
public:
|
|
description: Permit access to the associated resource to any user
|
|
example: true
|
|
type: boolean
|
|
teams:
|
|
description: List of team identifiers with access to the associated resource
|
|
example:
|
|
- 7
|
|
items:
|
|
type: integer
|
|
type: array
|
|
users:
|
|
description: List of user identifiers with access to the associated resource
|
|
example:
|
|
- 4
|
|
items:
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
settings.publicSettingsResponse:
|
|
properties:
|
|
AllowBindMountsForRegularUsers:
|
|
description: Whether non-administrator should be able to use bind mounts when
|
|
creating containers
|
|
example: true
|
|
type: boolean
|
|
AllowContainerCapabilitiesForRegularUsers:
|
|
description: Whether non-administrator should be able to use container capabilities
|
|
example: true
|
|
type: boolean
|
|
AllowDeviceMappingForRegularUsers:
|
|
description: Whether non-administrator should be able to use device mapping
|
|
example: true
|
|
type: boolean
|
|
AllowHostNamespaceForRegularUsers:
|
|
description: Whether non-administrator should be able to use the host pid
|
|
example: true
|
|
type: boolean
|
|
AllowPrivilegedModeForRegularUsers:
|
|
description: Whether non-administrator should be able to use privileged mode
|
|
when creating containers
|
|
example: true
|
|
type: boolean
|
|
AllowStackManagementForRegularUsers:
|
|
description: Whether non-administrator should be able to manage stacks
|
|
example: true
|
|
type: boolean
|
|
AllowVolumeBrowserForRegularUsers:
|
|
description: Whether non-administrator should be able to browse volumes
|
|
example: true
|
|
type: boolean
|
|
AuthenticationMethod:
|
|
description: 'Active authentication method for the Portainer instance. Valid
|
|
values are: 1 for internal, 2 for LDAP, or 3 for oauth'
|
|
example: 1
|
|
type: integer
|
|
EnableEdgeComputeFeatures:
|
|
description: Whether edge compute features are enabled
|
|
example: true
|
|
type: boolean
|
|
EnableHostManagementFeatures:
|
|
description: Whether host management features are enabled
|
|
example: true
|
|
type: boolean
|
|
EnableTelemetry:
|
|
description: Whether telemetry is enabled
|
|
example: true
|
|
type: boolean
|
|
LogoURL:
|
|
description: URL to a logo that will be displayed on the login page as well
|
|
as on top of the sidebar. Will use default Portainer logo when value is
|
|
empty string
|
|
example: https://mycompany.mydomain.tld/logo.png
|
|
type: string
|
|
OAuthLoginURI:
|
|
description: The URL used for oauth login
|
|
example: https://gitlab.com/oauth
|
|
type: string
|
|
type: object
|
|
settings.settingsLDAPCheckPayload:
|
|
properties:
|
|
ldapsettings:
|
|
$ref: '#/definitions/portainer.LDAPSettings'
|
|
type: object
|
|
settings.settingsUpdatePayload:
|
|
properties:
|
|
allowBindMountsForRegularUsers:
|
|
description: Whether non-administrator should be able to use bind mounts when
|
|
creating containers
|
|
example: false
|
|
type: boolean
|
|
allowContainerCapabilitiesForRegularUsers:
|
|
description: Whether non-administrator should be able to use container capabilities
|
|
example: true
|
|
type: boolean
|
|
allowDeviceMappingForRegularUsers:
|
|
description: Whether non-administrator should be able to use device mapping
|
|
example: true
|
|
type: boolean
|
|
allowHostNamespaceForRegularUsers:
|
|
description: Whether non-administrator should be able to use the host pid
|
|
example: true
|
|
type: boolean
|
|
allowPrivilegedModeForRegularUsers:
|
|
description: Whether non-administrator should be able to use privileged mode
|
|
when creating containers
|
|
example: false
|
|
type: boolean
|
|
allowStackManagementForRegularUsers:
|
|
description: Whether non-administrator should be able to manage stacks
|
|
example: true
|
|
type: boolean
|
|
allowVolumeBrowserForRegularUsers:
|
|
description: Whether non-administrator should be able to browse volumes
|
|
example: true
|
|
type: boolean
|
|
authenticationMethod:
|
|
description: 'Active authentication method for the Portainer instance. Valid
|
|
values are: 1 for internal, 2 for LDAP, or 3 for oauth'
|
|
example: 1
|
|
type: integer
|
|
blackListedLabels:
|
|
description: A list of label name & value that will be used to hide containers
|
|
when querying containers
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
edgeAgentCheckinInterval:
|
|
description: The default check in interval for edge agent (in seconds)
|
|
example: 5
|
|
type: integer
|
|
enableEdgeComputeFeatures:
|
|
description: Whether edge compute features are enabled
|
|
example: true
|
|
type: boolean
|
|
enableHostManagementFeatures:
|
|
description: Whether host management features are enabled
|
|
example: true
|
|
type: boolean
|
|
enableTelemetry:
|
|
description: Whether telemetry is enabled
|
|
example: false
|
|
type: boolean
|
|
internalAuthSettings:
|
|
$ref: '#/definitions/portainer.InternalAuthSettings'
|
|
ldapsettings:
|
|
$ref: '#/definitions/portainer.LDAPSettings'
|
|
logoURL:
|
|
description: URL to a logo that will be displayed on the login page as well
|
|
as on top of the sidebar. Will use default Portainer logo when value is
|
|
empty string
|
|
example: https://mycompany.mydomain.tld/logo.png
|
|
type: string
|
|
oauthSettings:
|
|
$ref: '#/definitions/portainer.OAuthSettings'
|
|
snapshotInterval:
|
|
description: The interval in which endpoint snapshots are created
|
|
example: 5m
|
|
type: string
|
|
templatesURL:
|
|
description: URL to the templates that will be displayed in the UI when navigating
|
|
to App Templates
|
|
example: https://raw.githubusercontent.com/portainer/templates/master/templates.json
|
|
type: string
|
|
userSessionTimeout:
|
|
description: The duration of a user session
|
|
example: 5m
|
|
type: string
|
|
type: object
|
|
stacks.composeStackFromFileContentPayload:
|
|
properties:
|
|
env:
|
|
description: A list of environment variables used during stack deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
name:
|
|
description: Name of the stack
|
|
example: myStack
|
|
type: string
|
|
stackFileContent:
|
|
description: Content of the Stack file
|
|
example: |-
|
|
version: 3
|
|
services:
|
|
web:
|
|
image:nginx
|
|
type: string
|
|
required:
|
|
- name
|
|
- stackFileContent
|
|
type: object
|
|
stacks.composeStackFromGitRepositoryPayload:
|
|
properties:
|
|
composeFilePathInRepository:
|
|
default: docker-compose.yml
|
|
description: Path to the Stack file inside the Git repository
|
|
example: docker-compose.yml
|
|
type: string
|
|
env:
|
|
description: A list of environment variables used during stack deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
name:
|
|
description: Name of the stack
|
|
example: myStack
|
|
type: string
|
|
repositoryAuthentication:
|
|
description: Use basic authentication to clone the Git repository
|
|
example: true
|
|
type: boolean
|
|
repositoryPassword:
|
|
description: Password used in basic authentication. Required when RepositoryAuthentication
|
|
is true.
|
|
example: myGitPassword
|
|
type: string
|
|
repositoryReferenceName:
|
|
description: Reference name of a Git repository hosting the Stack file
|
|
example: refs/heads/master
|
|
type: string
|
|
repositoryURL:
|
|
description: URL of a Git repository hosting the Stack file
|
|
example: https://github.com/openfaas/faas
|
|
type: string
|
|
repositoryUsername:
|
|
description: Username used in basic authentication. Required when RepositoryAuthentication
|
|
is true.
|
|
example: myGitUsername
|
|
type: string
|
|
required:
|
|
- name
|
|
- repositoryURL
|
|
type: object
|
|
stacks.stackFileResponse:
|
|
properties:
|
|
StackFileContent:
|
|
description: Content of the Stack file
|
|
example: |-
|
|
version: 3
|
|
services:
|
|
web:
|
|
image:nginx
|
|
type: string
|
|
type: object
|
|
stacks.stackMigratePayload:
|
|
properties:
|
|
endpointID:
|
|
description: Endpoint identifier of the target endpoint where the stack will
|
|
be relocated
|
|
example: 2
|
|
type: integer
|
|
name:
|
|
description: If provided will rename the migrated stack
|
|
example: new-stack
|
|
type: string
|
|
swarmID:
|
|
description: Swarm cluster identifier, must match the identifier of the cluster
|
|
where the stack will be relocated
|
|
example: jpofkc0i9uo9wtx1zesuk649w
|
|
type: string
|
|
required:
|
|
- endpointID
|
|
type: object
|
|
stacks.swarmStackFromFileContentPayload:
|
|
properties:
|
|
env:
|
|
description: A list of environment variables used during stack deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
name:
|
|
description: Name of the stack
|
|
example: myStack
|
|
type: string
|
|
stackFileContent:
|
|
description: Content of the Stack file
|
|
example: |-
|
|
version: 3
|
|
services:
|
|
web:
|
|
image:nginx
|
|
type: string
|
|
swarmID:
|
|
description: Swarm cluster identifier
|
|
example: jpofkc0i9uo9wtx1zesuk649w
|
|
type: string
|
|
required:
|
|
- name
|
|
- stackFileContent
|
|
- swarmID
|
|
type: object
|
|
stacks.swarmStackFromGitRepositoryPayload:
|
|
properties:
|
|
composeFilePathInRepository:
|
|
default: docker-compose.yml
|
|
description: Path to the Stack file inside the Git repository
|
|
example: docker-compose.yml
|
|
type: string
|
|
env:
|
|
description: A list of environment variables used during stack deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
name:
|
|
description: Name of the stack
|
|
example: myStack
|
|
type: string
|
|
repositoryAuthentication:
|
|
description: Use basic authentication to clone the Git repository
|
|
example: true
|
|
type: boolean
|
|
repositoryPassword:
|
|
description: Password used in basic authentication. Required when RepositoryAuthentication
|
|
is true.
|
|
example: myGitPassword
|
|
type: string
|
|
repositoryReferenceName:
|
|
description: Reference name of a Git repository hosting the Stack file
|
|
example: refs/heads/master
|
|
type: string
|
|
repositoryURL:
|
|
description: URL of a Git repository hosting the Stack file
|
|
example: https://github.com/openfaas/faas
|
|
type: string
|
|
repositoryUsername:
|
|
description: Username used in basic authentication. Required when RepositoryAuthentication
|
|
is true.
|
|
example: myGitUsername
|
|
type: string
|
|
swarmID:
|
|
description: Swarm cluster identifier
|
|
example: jpofkc0i9uo9wtx1zesuk649w
|
|
type: string
|
|
required:
|
|
- name
|
|
- repositoryURL
|
|
- swarmID
|
|
type: object
|
|
stacks.updateSwarmStackPayload:
|
|
properties:
|
|
env:
|
|
description: A list of environment variables used during stack deployment
|
|
items:
|
|
$ref: '#/definitions/portainer.Pair'
|
|
type: array
|
|
prune:
|
|
description: Prune services that are no longer referenced (only available
|
|
for Swarm stacks)
|
|
example: true
|
|
type: boolean
|
|
stackFileContent:
|
|
description: New content of the Stack file
|
|
example: |-
|
|
version: 3
|
|
services:
|
|
web:
|
|
image:nginx
|
|
type: string
|
|
type: object
|
|
status.inspectVersionResponse:
|
|
properties:
|
|
LatestVersion:
|
|
description: The latest version available
|
|
example: 2.0.0
|
|
type: string
|
|
UpdateAvailable:
|
|
description: Whether portainer has an update available
|
|
example: false
|
|
type: boolean
|
|
type: object
|
|
tags.tagCreatePayload:
|
|
properties:
|
|
name:
|
|
description: Name
|
|
example: org/acme
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
teammemberships.teamMembershipCreatePayload:
|
|
properties:
|
|
role:
|
|
description: Role for the user inside the team (1 for leader and 2 for regular
|
|
member)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
teamID:
|
|
description: Team identifier
|
|
example: 1
|
|
type: integer
|
|
userID:
|
|
description: User identifier
|
|
example: 1
|
|
type: integer
|
|
required:
|
|
- role
|
|
- teamID
|
|
- userID
|
|
type: object
|
|
teammemberships.teamMembershipUpdatePayload:
|
|
properties:
|
|
role:
|
|
description: Role for the user inside the team (1 for leader and 2 for regular
|
|
member)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 1
|
|
type: integer
|
|
teamID:
|
|
description: Team identifier
|
|
example: 1
|
|
type: integer
|
|
userID:
|
|
description: User identifier
|
|
example: 1
|
|
type: integer
|
|
required:
|
|
- role
|
|
- teamID
|
|
- userID
|
|
type: object
|
|
teams.teamCreatePayload:
|
|
properties:
|
|
name:
|
|
description: Name
|
|
example: developers
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
teams.teamUpdatePayload:
|
|
properties:
|
|
name:
|
|
description: Name
|
|
example: developers
|
|
type: string
|
|
type: object
|
|
templates.filePayload:
|
|
properties:
|
|
composeFilePathInRepository:
|
|
description: Path to the file inside the git repository
|
|
example: ./subfolder/docker-compose.yml
|
|
type: string
|
|
repositoryURL:
|
|
description: URL of a git repository where the file is stored
|
|
example: https://github.com/portainer/portainer-compose
|
|
type: string
|
|
required:
|
|
- composeFilePathInRepository
|
|
- repositoryURL
|
|
type: object
|
|
templates.fileResponse:
|
|
properties:
|
|
fileContent:
|
|
description: The requested file content
|
|
type: string
|
|
type: object
|
|
templates.listResponse:
|
|
properties:
|
|
templates:
|
|
items:
|
|
$ref: '#/definitions/portainer.Template'
|
|
type: array
|
|
version:
|
|
type: string
|
|
type: object
|
|
users.adminInitPayload:
|
|
properties:
|
|
password:
|
|
description: Password for the admin user
|
|
example: admin-password
|
|
type: string
|
|
username:
|
|
description: Username for the admin user
|
|
example: admin
|
|
type: string
|
|
required:
|
|
- password
|
|
- username
|
|
type: object
|
|
users.userCreatePayload:
|
|
properties:
|
|
password:
|
|
example: cg9Wgky3
|
|
type: string
|
|
role:
|
|
description: User role (1 for administrator account and 2 for regular account)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 2
|
|
type: integer
|
|
username:
|
|
example: bob
|
|
type: string
|
|
required:
|
|
- password
|
|
- role
|
|
- username
|
|
type: object
|
|
users.userUpdatePasswordPayload:
|
|
properties:
|
|
newPassword:
|
|
description: New Password
|
|
example: new_passwd
|
|
type: string
|
|
password:
|
|
description: Current Password
|
|
example: passwd
|
|
type: string
|
|
required:
|
|
- newPassword
|
|
- password
|
|
type: object
|
|
users.userUpdatePayload:
|
|
properties:
|
|
password:
|
|
example: cg9Wgky3
|
|
type: string
|
|
role:
|
|
description: User role (1 for administrator account and 2 for regular account)
|
|
enum:
|
|
- 1
|
|
- 2
|
|
example: 2
|
|
type: integer
|
|
username:
|
|
example: bob
|
|
type: string
|
|
required:
|
|
- password
|
|
- role
|
|
- username
|
|
type: object
|
|
webhooks.webhookCreatePayload:
|
|
properties:
|
|
endpointID:
|
|
type: integer
|
|
resourceID:
|
|
type: string
|
|
webhookType:
|
|
type: integer
|
|
type: object
|
|
info:
|
|
contact:
|
|
email: info@portainer.io
|
|
description: |
|
|
Portainer API is an HTTP API served by Portainer. It is used by the Portainer UI and everything you can do with the UI can be done using the HTTP API.
|
|
Examples are available at https://documentation.portainer.io/api/api-examples/
|
|
You can find out more about Portainer at [http://portainer.io](http://portainer.io) and get some support on [Slack](http://portainer.io/slack/).
|
|
|
|
# Authentication
|
|
|
|
Most of the API endpoints require to be authenticated as well as some level of authorization to be used.
|
|
Portainer API uses JSON Web Token to manage authentication and thus requires you to provide a token in the **Authorization** header of each request
|
|
with the **Bearer** authentication mechanism.
|
|
|
|
Example:
|
|
|
|
```
|
|
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInJvbGUiOjEsImV4cCI6MTQ5OTM3NjE1NH0.NJ6vE8FY1WG6jsRQzfMqeatJ4vh2TWAeeYfDhP71YEE
|
|
```
|
|
|
|
# Security
|
|
|
|
Each API endpoint has an associated access policy, it is documented in the description of each endpoint.
|
|
|
|
Different access policies are available:
|
|
|
|
- Public access
|
|
- Authenticated access
|
|
- Restricted access
|
|
- Administrator access
|
|
|
|
### Public access
|
|
|
|
No authentication is required to access the endpoints with this access policy.
|
|
|
|
### Authenticated access
|
|
|
|
Authentication is required to access the endpoints with this access policy.
|
|
|
|
### Restricted access
|
|
|
|
Authentication is required to access the endpoints with this access policy.
|
|
Extra-checks might be added to ensure access to the resource is granted. Returned data might also be filtered.
|
|
|
|
### Administrator access
|
|
|
|
Authentication as well as an administrator role are required to access the endpoints with this access policy.
|
|
|
|
# Execute Docker requests
|
|
|
|
Portainer **DO NOT** expose specific endpoints to manage your Docker resources (create a container, remove a volume, etc...).
|
|
|
|
Instead, it acts as a reverse-proxy to the Docker HTTP API. This means that you can execute Docker requests **via** the Portainer HTTP API.
|
|
|
|
To do so, you can use the `/endpoints/{id}/docker` Portainer API endpoint (which is not documented below due to Swagger limitations). This endpoint has a restricted access policy so you still need to be authenticated to be able to query this endpoint. Any query on this endpoint will be proxied to the Docker API of the associated endpoint (requests and responses objects are the same as documented in the Docker API).
|
|
|
|
**NOTE**: You can find more information on how to query the Docker API in the [Docker official documentation](https://docs.docker.com/engine/api/v1.30/) as well as in [this Portainer example](https://documentation.portainer.io/api/api-examples/).
|
|
license: {}
|
|
title: PortainerCE API
|
|
version: 2.0.0
|
|
paths:
|
|
/auth:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Use this endpoint to authenticate against Portainer using a username
|
|
and password.
|
|
operationId: AuthenticateUser
|
|
parameters:
|
|
- description: Credentials used for authentication
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/auth.authenticatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/auth.authenticateResponse'
|
|
'400':
|
|
description: Invalid request
|
|
'422':
|
|
description: Invalid Credentials
|
|
'500':
|
|
description: Server error
|
|
summary: Authenticate
|
|
tags:
|
|
- auth
|
|
/auth/logout:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
operationId: logout
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: Logout
|
|
tags:
|
|
- auth
|
|
/auth/oauth/validate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
operationId: authenticate_oauth
|
|
parameters:
|
|
- description: OAuth Credentials used for authentication
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/auth.oauthPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/auth.authenticateResponse'
|
|
'400':
|
|
description: Invalid request
|
|
'422':
|
|
description: Invalid Credentials
|
|
'500':
|
|
description: Server error
|
|
summary: Authenticate with OAuth
|
|
tags:
|
|
- auth
|
|
/custom_templates:
|
|
get:
|
|
description: |-
|
|
List available custom templates.
|
|
**Access policy**: authenticated
|
|
operationId: CustomTemplateList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.CustomTemplate'
|
|
type: array
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List available custom templates
|
|
tags:
|
|
- custom_templates
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
- ' multipart/form-data'
|
|
description: |-
|
|
Create a custom template.
|
|
**Access policy**: authenticated
|
|
operationId: CustomTemplateCreate
|
|
parameters:
|
|
- description: method for creating template
|
|
enum:
|
|
- string
|
|
- file
|
|
- repository
|
|
in: query
|
|
name: method
|
|
required: true
|
|
type: string
|
|
- description: Required when using method=string
|
|
in: body
|
|
name: body_string
|
|
schema:
|
|
$ref: '#/definitions/customtemplates.customTemplateFromFileContentPayload'
|
|
- description: Required when using method=repository
|
|
in: body
|
|
name: body_repository
|
|
schema:
|
|
$ref: '#/definitions/customtemplates.customTemplateFromGitRepositoryPayload'
|
|
- description: Title of the template. required when method is file
|
|
in: formData
|
|
name: Title
|
|
type: string
|
|
- description: Description of the template. required when method is file
|
|
in: formData
|
|
name: Description
|
|
type: string
|
|
- description: A note that will be displayed in the UI. Supports HTML content
|
|
in: formData
|
|
name: Note
|
|
type: string
|
|
- description: Platform associated to the template (1 - 'linux', 2 - 'windows').
|
|
required when method is file
|
|
enum:
|
|
- 1
|
|
- 2
|
|
in: formData
|
|
name: Platform
|
|
type: integer
|
|
- description: Type of created stack (1 - swarm, 2 - compose), required when
|
|
method is file
|
|
enum:
|
|
- 1
|
|
- 2
|
|
in: formData
|
|
name: Type
|
|
type: integer
|
|
- description: required when method is file
|
|
in: formData
|
|
name: file
|
|
type: file
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.CustomTemplate'
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a custom template
|
|
tags:
|
|
- custom_templates
|
|
/custom_templates/{id}:
|
|
delete:
|
|
description: |-
|
|
Remove a template.
|
|
**Access policy**: authorized
|
|
operationId: CustomTemplateDelete
|
|
parameters:
|
|
- description: Template identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Access denied to resource
|
|
'404':
|
|
description: Template not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a template
|
|
tags:
|
|
- custom_templates
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Retrieve details about a template.
|
|
**Access policy**: authenticated
|
|
operationId: CustomTemplateInspect
|
|
parameters:
|
|
- description: Template identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.CustomTemplate'
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Template not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect a custom template
|
|
tags:
|
|
- custom_templates
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update a template.
|
|
**Access policy**: authenticated
|
|
operationId: CustomTemplateUpdate
|
|
parameters:
|
|
- description: Template identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Template details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/customtemplates.customTemplateUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.CustomTemplate'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied to access template
|
|
'404':
|
|
description: Template not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update a template
|
|
tags:
|
|
- custom_templates
|
|
/custom_templates/{id}/file:
|
|
get:
|
|
description: |-
|
|
Retrieve the content of the Stack file for the specified custom template
|
|
**Access policy**: authorized
|
|
operationId: CustomTemplateFile
|
|
parameters:
|
|
- description: Template identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/customtemplates.fileResponse'
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Custom template not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Get Template stack file content.
|
|
tags:
|
|
- custom_templates
|
|
/dockerhub:
|
|
get:
|
|
description: |-
|
|
Use this endpoint to retrieve the information used to connect to the DockerHub
|
|
**Access policy**: authenticated
|
|
operationId: DockerHubInspect
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.DockerHub'
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Retrieve DockerHub information
|
|
tags:
|
|
- dockerhub
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Use this endpoint to update the information used to connect to the DockerHub
|
|
**Access policy**: administrator
|
|
operationId: DockerHubUpdate
|
|
parameters:
|
|
- description: DockerHub information
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/dockerhub.dockerhubUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update DockerHub information
|
|
tags:
|
|
- dockerhub
|
|
/edge_groups:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: EdgeGroups
|
|
schema:
|
|
items:
|
|
allOf:
|
|
- $ref: '#/definitions/portainer.EdgeGroup'
|
|
- properties:
|
|
HasEdgeStack:
|
|
type: boolean
|
|
type: object
|
|
type: array
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: list EdgeGroups
|
|
tags:
|
|
- edge_groups
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeGroup data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgegroups.edgeGroupCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeGroup'
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Create an EdgeGroup
|
|
tags:
|
|
- edge_groups
|
|
/edge_groups/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeGroup Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Deletes an EdgeGroup
|
|
tags:
|
|
- edge_groups
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeGroup Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeGroup'
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Inspects an EdgeGroup
|
|
tags:
|
|
- edge_groups
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeGroup Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: EdgeGroup data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgegroups.edgeGroupUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeGroup'
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Updates an EdgeGroup
|
|
tags:
|
|
- edge_groups
|
|
/edge_jobs:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.EdgeJob'
|
|
type: array
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Fetch EdgeJobs list
|
|
tags:
|
|
- edge_jobs
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Creation Method
|
|
enum:
|
|
- file
|
|
- string
|
|
in: query
|
|
name: method
|
|
required: true
|
|
type: string
|
|
- description: EdgeGroup data when method is string
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgejobs.edgeJobCreateFromFileContentPayload'
|
|
- description: EdgeGroup data when method is file
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgejobs.edgeJobCreateFromFilePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeGroup'
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Create an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
/edge_jobs/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Delete an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeJob'
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: EdgeGroup data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgejobs.edgeJobUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeJob'
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Update an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
/edge_jobs/{id}/file:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/edgejobs.edgeJobFileResponse'
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Fetch a file of an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
/edge_jobs/{id}/tasks:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/edgejobs.taskContainer'
|
|
type: array
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Fetch the list of tasks on an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
/edge_jobs/{id}/tasks/{taskID}/logs:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Task Id
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Clear the log for a specifc task on an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Task Id
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/edgejobs.fileResponse'
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Fetch the log for a specifc task on an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeJob Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Task Id
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Collect the log for a specifc task on an EdgeJob
|
|
tags:
|
|
- edge_jobs
|
|
/edge_stacks:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.EdgeStack'
|
|
type: array
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Fetches the list of EdgeStacks
|
|
tags:
|
|
- edge_stacks
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Creation Method
|
|
enum:
|
|
- file
|
|
- string
|
|
- repository
|
|
in: query
|
|
name: method
|
|
required: true
|
|
type: string
|
|
- description: Required when using method=string
|
|
in: body
|
|
name: body_string
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgestacks.swarmStackFromFileContentPayload'
|
|
- description: Required when using method=file
|
|
in: body
|
|
name: body_file
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgestacks.swarmStackFromFileUploadPayload'
|
|
- description: Required when using method=repository
|
|
in: body
|
|
name: body_repository
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgestacks.swarmStackFromGitRepositoryPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeStack'
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Create an EdgeStack
|
|
tags:
|
|
- edge_stacks
|
|
/edge_stacks/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeStack Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Delete an EdgeStack
|
|
tags:
|
|
- edge_stacks
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeStack Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeStack'
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect an EdgeStack
|
|
tags:
|
|
- edge_stacks
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeStack Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: EdgeStack data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/edgestacks.updateEdgeStackPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeStack'
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Update an EdgeStack
|
|
tags:
|
|
- edge_stacks
|
|
/edge_stacks/{id}/file:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: EdgeStack Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/edgestacks.stackFileResponse'
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
'503':
|
|
description: Service Unavailable
|
|
schema:
|
|
type: Edge
|
|
security:
|
|
- jwt: []
|
|
summary: Fetches the stack file for an EdgeStack
|
|
tags:
|
|
- edge_stacks
|
|
/edge_stacks/{id}/status:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Authorized only if the request is done by an Edge Endpoint
|
|
parameters:
|
|
- description: EdgeStack Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.EdgeStack'
|
|
'400':
|
|
description: ''
|
|
'403':
|
|
description: ''
|
|
'404':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
summary: Update an EdgeStack status
|
|
tags:
|
|
- edge_stacks
|
|
/edge_templates:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Template'
|
|
type: array
|
|
'500':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: Fetches the list of Edge Templates
|
|
tags:
|
|
- edge_templates
|
|
/endpoint_groups:
|
|
get:
|
|
description: |-
|
|
List all endpoint groups based on the current user authorizations. Will
|
|
return all endpoint groups if using an administrator account otherwise it will
|
|
only return authorized endpoint groups.
|
|
**Access policy**: restricted
|
|
operationId: EndpointGroupList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Endpoint group
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.EndpointGroup'
|
|
type: array
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List Endpoint groups
|
|
tags:
|
|
- endpoint_groups
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Create a new endpoint group.
|
|
**Access policy**: administrator
|
|
parameters:
|
|
- description: Endpoint Group details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/endpointgroups.endpointGroupCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.EndpointGroup'
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create an Endpoint Group
|
|
tags:
|
|
- endpoint_groups
|
|
/endpoint_groups/:id:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Retrieve details abont an endpoint group.
|
|
**Access policy**: administrator
|
|
parameters:
|
|
- description: Endpoint group identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.EndpointGroup'
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: EndpointGroup not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect an Endpoint group
|
|
tags:
|
|
- endpoint_groups
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update an endpoint group.
|
|
**Access policy**: administrator
|
|
operationId: EndpointGroupUpdate
|
|
parameters:
|
|
- description: EndpointGroup identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: EndpointGroup details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/endpointgroups.endpointGroupUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.EndpointGroup'
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: EndpointGroup not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update an endpoint group
|
|
tags:
|
|
- endpoint_groups
|
|
/endpoint_groups/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Remove an endpoint group.
|
|
**Access policy**: administrator
|
|
operationId: EndpointGroupDelete
|
|
parameters:
|
|
- description: EndpointGroup identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: EndpointGroup not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove an endpoint group
|
|
tags:
|
|
- endpoint_groups
|
|
/endpoint_groups/{id}/endpoints/{endpointId}:
|
|
delete:
|
|
description: '**Access policy**: administrator'
|
|
operationId: EndpointGroupDeleteEndpoint
|
|
parameters:
|
|
- description: EndpointGroup identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Endpoint identifier
|
|
in: path
|
|
name: endpointId
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: EndpointGroup not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Removes endpoint from an endpoint group
|
|
tags:
|
|
- endpoint_groups
|
|
put:
|
|
description: |-
|
|
Add an endpoint to an endpoint group
|
|
**Access policy**: administrator
|
|
operationId: EndpointGroupAddEndpoint
|
|
parameters:
|
|
- description: EndpointGroup identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Endpoint identifier
|
|
in: path
|
|
name: endpointId
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: EndpointGroup not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Add an endpoint to an endpoint group
|
|
tags:
|
|
- endpoint_groups
|
|
/endpoints:
|
|
get:
|
|
description: |-
|
|
List all endpoints based on the current user authorizations. Will
|
|
return all endpoints if using an administrator account otherwise it will
|
|
only return authorized endpoints.
|
|
**Access policy**: restricted
|
|
operationId: EndpointList
|
|
parameters:
|
|
- description: Start searching from
|
|
in: query
|
|
name: start
|
|
type: integer
|
|
- description: Search query
|
|
in: query
|
|
name: search
|
|
type: string
|
|
- description: List endpoints of this group
|
|
in: query
|
|
name: groupId
|
|
type: integer
|
|
- description: Limit results to this value
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: List endpoints of this type
|
|
in: query
|
|
name: type
|
|
type: integer
|
|
- description: search endpoints with these tags (depends on tagsPartialMatch)
|
|
in: query
|
|
items:
|
|
type: integer
|
|
name: tagIds
|
|
type: array
|
|
- description: If true, will return endpoint which has one of tagIds, if false
|
|
(or missing) will return only endpoints that has all the tags
|
|
in: query
|
|
name: tagsPartialMatch
|
|
type: boolean
|
|
- description: will return only these endpoints
|
|
in: query
|
|
items:
|
|
type: integer
|
|
name: endpointIds
|
|
type: array
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Endpoints
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Endpoint'
|
|
type: array
|
|
'500':
|
|
description: Internal Server Error
|
|
schema:
|
|
type: Server
|
|
security:
|
|
- jwt: []
|
|
summary: List endpoints
|
|
tags:
|
|
- endpoints
|
|
post:
|
|
consumes:
|
|
- multipart/form-data
|
|
description: |-
|
|
Create a new endpoint that will be used to manage an environment.
|
|
**Access policy**: administrator
|
|
operationId: EndpointCreate
|
|
parameters:
|
|
- description: 'Name that will be used to identify this endpoint (example: my-endpoint)'
|
|
in: formData
|
|
name: Name
|
|
required: true
|
|
type: string
|
|
- description: 'Environment type. Value must be one of: 1 (Local Docker environment),
|
|
2 (Agent environment), 3 (Azure environment), 4 (Edge agent environment)
|
|
or 5 (Local Kubernetes Environment'
|
|
in: formData
|
|
name: EndpointType
|
|
required: true
|
|
type: integer
|
|
- description: 'URL or IP address of a Docker host (example: docker.mydomain.tld:2375).
|
|
Defaults to local if not specified (Linux: /var/run/docker.sock, Windows:
|
|
//./pipe/docker_engine)'
|
|
in: formData
|
|
name: URL
|
|
type: string
|
|
- description: 'URL or IP address where exposed containers will be reachable.
|
|
Defaults to URL if not specified (example: docker.mydomain.tld:2375)'
|
|
in: formData
|
|
name: PublicURL
|
|
type: string
|
|
- description: Endpoint group identifier. If not specified will default to 1
|
|
(unassigned).
|
|
in: formData
|
|
name: GroupID
|
|
type: integer
|
|
- description: Require TLS to connect against this endpoint
|
|
in: formData
|
|
name: TLS
|
|
type: boolean
|
|
- description: Skip server verification when using TLS
|
|
in: formData
|
|
name: TLSSkipVerify
|
|
type: boolean
|
|
- description: Skip client verification when using TLS
|
|
in: formData
|
|
name: TLSSkipClientVerify
|
|
type: boolean
|
|
- description: TLS CA certificate file
|
|
in: formData
|
|
name: TLSCACertFile
|
|
type: file
|
|
- description: TLS client certificate file
|
|
in: formData
|
|
name: TLSCertFile
|
|
type: file
|
|
- description: TLS client key file
|
|
in: formData
|
|
name: TLSKeyFile
|
|
type: file
|
|
- description: Azure application ID. Required if endpoint type is set to 3
|
|
in: formData
|
|
name: AzureApplicationID
|
|
type: string
|
|
- description: Azure tenant ID. Required if endpoint type is set to 3
|
|
in: formData
|
|
name: AzureTenantID
|
|
type: string
|
|
- description: Azure authentication key. Required if endpoint type is set to
|
|
3
|
|
in: formData
|
|
name: AzureAuthenticationKey
|
|
type: string
|
|
- description: List of tag identifiers to which this endpoint is associated
|
|
in: formData
|
|
items:
|
|
type: integer
|
|
name: TagIDs
|
|
type: array
|
|
- description: The check in interval for edge agent (in seconds)
|
|
in: formData
|
|
name: EdgeCheckinInterval
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Endpoint'
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a new endpoint
|
|
tags:
|
|
- endpoints
|
|
/endpoints/{id}:
|
|
delete:
|
|
description: |-
|
|
Remove an endpoint.
|
|
**Access policy**: administrator
|
|
operationId: EndpointDelete
|
|
parameters:
|
|
- description: Endpoint identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Endpoint not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove an endpoint
|
|
tags:
|
|
- endpoints
|
|
get:
|
|
description: |-
|
|
Retrieve details about an endpoint.
|
|
**Access policy**: restricted
|
|
operationId: EndpointInspect
|
|
parameters:
|
|
- description: Endpoint identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Endpoint'
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Endpoint not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect an endpoint
|
|
tags:
|
|
- endpoints
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update an endpoint.
|
|
**Access policy**: administrator
|
|
operationId: EndpointUpdate
|
|
parameters:
|
|
- description: Endpoint identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Endpoint details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/endpoints.endpointUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Endpoint'
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Endpoint not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update an endpoint
|
|
tags:
|
|
- endpoints
|
|
/endpoints/{id}/edge/jobs/{jobID}/logs:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Endpoint Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Job Id
|
|
in: path
|
|
name: jobID
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
summary: Inspect an EdgeJob Log
|
|
tags:
|
|
- edge
|
|
- endpoints
|
|
/endpoints/{id}/edge/stacks/{stackId}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Endpoint Id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: EdgeStack Id
|
|
in: path
|
|
name: stackID
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/endpointedge.configResponse'
|
|
'400':
|
|
description: ''
|
|
'404':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
summary: Inspect an Edge Stack for an Endpoint
|
|
tags:
|
|
- edge
|
|
- endpoints
|
|
- edge_stacks
|
|
/endpoints/{id}/snapshot:
|
|
post:
|
|
description: |-
|
|
Snapshots an endpoint
|
|
**Access policy**: restricted
|
|
operationId: EndpointSnapshot
|
|
parameters:
|
|
- description: Endpoint identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Endpoint not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Snapshots an endpoint
|
|
tags:
|
|
- endpoints
|
|
/endpoints/{id}/edge/status:
|
|
get:
|
|
description: |-
|
|
Endpoint for edge agent to check status of environment
|
|
**Access policy**: restricted only to Edge endpoints
|
|
operationId: EndpointEdgeStatusInspect
|
|
parameters:
|
|
- description: Endpoint identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/endpoints.endpointEdgeStatusInspectResponse'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied to access endpoint
|
|
'404':
|
|
description: Endpoint not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Get endpoint status
|
|
tags:
|
|
- endpoints
|
|
/endpoints/snapshot:
|
|
post:
|
|
description: |-
|
|
Snapshot all endpoints
|
|
**Access policy**: administrator
|
|
operationId: EndpointSnapshots
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'500':
|
|
description: Server Error
|
|
security:
|
|
- jwt: []
|
|
summary: Snapshot all endpoints
|
|
tags:
|
|
- endpoints
|
|
/motd:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/motd.motdResponse'
|
|
security:
|
|
- jwt: []
|
|
summary: fetches the message of the day
|
|
tags:
|
|
- motd
|
|
/registries:
|
|
get:
|
|
description: |-
|
|
List all registries based on the current user authorizations.
|
|
Will return all registries if using an administrator account otherwise it
|
|
will only return authorized registries.
|
|
**Access policy**: restricted
|
|
operationId: RegistryList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Registry'
|
|
type: array
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List Registries
|
|
tags:
|
|
- registries
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Create a new registry.
|
|
**Access policy**: administrator
|
|
operationId: RegistryCreate
|
|
parameters:
|
|
- description: Registry details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/registries.registryCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Registry'
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a new registry
|
|
tags:
|
|
- registries
|
|
/registries/{id}:
|
|
delete:
|
|
description: |-
|
|
Remove a registry
|
|
**Access policy**: administrator
|
|
operationId: RegistryDelete
|
|
parameters:
|
|
- description: Registry identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Registry not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a registry
|
|
tags:
|
|
- registries
|
|
get:
|
|
description: |-
|
|
Retrieve details about a registry.
|
|
**Access policy**: administrator
|
|
operationId: RegistryInspect
|
|
parameters:
|
|
- description: Registry identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Registry'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied to access registry
|
|
'404':
|
|
description: Registry not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect a registry
|
|
tags:
|
|
- registries
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update a registry
|
|
**Access policy**: administrator
|
|
operationId: RegistryUpdate
|
|
parameters:
|
|
- description: Registry identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Registry details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/registries.registryUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Registry'
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Registry not found
|
|
'409':
|
|
description: Another registry with the same URL already exists
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update a registry
|
|
tags:
|
|
- registries
|
|
/registries/{id}/configure:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Configures a registry.
|
|
**Access policy**: admin
|
|
operationId: RegistryConfigure
|
|
parameters:
|
|
- description: Registry identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Registry configuration
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/registries.registryConfigurePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Registry not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Configures a registry
|
|
tags:
|
|
- registries
|
|
/resource_controls:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Create a new resource control to restrict access to a Docker resource.
|
|
**Access policy**: administrator
|
|
operationId: ResourceControlCreate
|
|
parameters:
|
|
- description: Resource control details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/resourcecontrols.resourceControlCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.ResourceControl'
|
|
'400':
|
|
description: Invalid request
|
|
'409':
|
|
description: Resource control already exists
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a new resource control
|
|
tags:
|
|
- resource_controls
|
|
/resource_controls/{id}:
|
|
delete:
|
|
description: |-
|
|
Remove a resource control.
|
|
**Access policy**: administrator
|
|
parameters:
|
|
- description: Resource control identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'404':
|
|
description: Resource control not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a resource control
|
|
tags:
|
|
- resource_controls
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update a resource control
|
|
**Access policy**: restricted
|
|
operationId: ResourceControlUpdate
|
|
parameters:
|
|
- description: Resource control identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Resource control details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/resourcecontrols.resourceControlUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.ResourceControl'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Unauthorized
|
|
'404':
|
|
description: Resource control not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update a resource control
|
|
tags:
|
|
- resource_controls
|
|
/roles:
|
|
get:
|
|
description: |-
|
|
List all roles available for use
|
|
**Access policy**: administrator
|
|
operationId: RoleList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Role'
|
|
type: array
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List roles
|
|
tags:
|
|
- roles
|
|
/settings:
|
|
get:
|
|
description: |-
|
|
Retrieve Portainer settings.
|
|
**Access policy**: administrator
|
|
operationId: SettingsInspect
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Settings'
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Retrieve Portainer settings
|
|
tags:
|
|
- settings
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update Portainer settings.
|
|
**Access policy**: administrator
|
|
operationId: SettingsUpdate
|
|
parameters:
|
|
- description: New settings
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/settings.settingsUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Settings'
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update Portainer settings
|
|
tags:
|
|
- settings
|
|
/settings/ldap/check:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Test LDAP connectivity using LDAP details
|
|
**Access policy**: administrator
|
|
operationId: SettingsLDAPCheck
|
|
parameters:
|
|
- description: details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/settings.settingsLDAPCheckPayload'
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Test LDAP connectivity
|
|
tags:
|
|
- settings
|
|
/settings/public:
|
|
get:
|
|
description: |-
|
|
Retrieve public settings. Returns a small set of settings that are not reserved to administrators only.
|
|
**Access policy**: public
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/settings.publicSettingsResponse'
|
|
'500':
|
|
description: Server error
|
|
summary: Retrieve Portainer public settings
|
|
tags:
|
|
- settings
|
|
/stacks:
|
|
get:
|
|
description: |-
|
|
List all stacks based on the current user authorizations.
|
|
Will return all stacks if using an administrator account otherwise it
|
|
will only return the list of stacks the user have access to.
|
|
**Access policy**: restricted
|
|
operationId: StackList
|
|
parameters:
|
|
- description: Filters to process on the stack list. Encoded as JSON (a map[string]string).
|
|
For example, {
|
|
in: query
|
|
name: filters
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Stack'
|
|
type: array
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List stacks
|
|
tags:
|
|
- stacks
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
- ' multipart/form-data'
|
|
description: |-
|
|
Deploy a new stack into a Docker environment specified via the endpoint identifier.
|
|
**Access policy**: restricted
|
|
operationId: StackCreate
|
|
parameters:
|
|
- description: 'Stack deployment type. Possible values: 1 (Swarm stack) or 2
|
|
(Compose stack).'
|
|
enum:
|
|
- 1
|
|
- 2
|
|
in: query
|
|
name: type
|
|
required: true
|
|
type: integer
|
|
- description: 'Stack deployment method. Possible values: file, string or repository.'
|
|
enum:
|
|
- string
|
|
- file
|
|
- repository
|
|
in: query
|
|
name: method
|
|
required: true
|
|
type: string
|
|
- description: Identifier of the endpoint that will be used to deploy the stack
|
|
in: query
|
|
name: endpointId
|
|
required: true
|
|
type: integer
|
|
- description: Required when using method=string and type=1
|
|
in: body
|
|
name: body_swarm_string
|
|
schema:
|
|
$ref: '#/definitions/stacks.swarmStackFromFileContentPayload'
|
|
- description: Required when using method=repository and type=1
|
|
in: body
|
|
name: body_swarm_repository
|
|
schema:
|
|
$ref: '#/definitions/stacks.swarmStackFromGitRepositoryPayload'
|
|
- description: Required when using method=string and type=2
|
|
in: body
|
|
name: body_compose_string
|
|
schema:
|
|
$ref: '#/definitions/stacks.composeStackFromFileContentPayload'
|
|
- description: Required when using method=repository and type=2
|
|
in: body
|
|
name: body_compose_repository
|
|
schema:
|
|
$ref: '#/definitions/stacks.composeStackFromGitRepositoryPayload'
|
|
- description: Name of the stack. required when method is file
|
|
in: formData
|
|
name: Name
|
|
type: string
|
|
- description: Swarm cluster identifier. Required when method equals file and
|
|
type equals 1. required when method is file
|
|
in: formData
|
|
name: SwarmID
|
|
type: string
|
|
- description: "Environment variables passed during deployment, represented
|
|
as a JSON array [{'name': 'name', 'value': 'value'}]. Optional,
|
|
used when method equals file and type equals 1."
|
|
in: formData
|
|
name: Env
|
|
type: string
|
|
- description: Stack file. required when method is file
|
|
in: formData
|
|
name: file
|
|
type: file
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.CustomTemplate'
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Deploy a new stack
|
|
tags:
|
|
- stacks
|
|
/stacks/{id}:
|
|
delete:
|
|
description: |-
|
|
Remove a stack.
|
|
**Access policy**: restricted
|
|
operationId: StackDelete
|
|
parameters:
|
|
- description: Stack identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Set to true to delete an external stack. Only external Swarm
|
|
stacks are supported
|
|
in: query
|
|
name: external
|
|
type: boolean
|
|
- description: Endpoint identifier used to remove an external stack (required
|
|
when external is set to true)
|
|
in: query
|
|
name: endpointId
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: ' not found'
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a stack
|
|
tags:
|
|
- stacks
|
|
get:
|
|
description: |-
|
|
Retrieve details about a stack.
|
|
**Access policy**: restricted
|
|
operationId: StackInspect
|
|
parameters:
|
|
- description: Stack identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Stack'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Stack not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect a stack
|
|
tags:
|
|
- stacks
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update a stack.
|
|
**Access policy**: restricted
|
|
operationId: StackUpdate
|
|
parameters:
|
|
- description: Stack identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Stacks created before version 1.18.0 might not have an associated
|
|
endpoint identifier. Use this optional parameter to set the endpoint identifier
|
|
used by the stack.
|
|
in: query
|
|
name: endpointId
|
|
type: integer
|
|
- description: Stack details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/stacks.updateSwarmStackPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Stack'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: ' not found'
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update a stack
|
|
tags:
|
|
- stacks
|
|
/stacks/{id}/file:
|
|
get:
|
|
description: |-
|
|
Get Stack file content.
|
|
**Access policy**: restricted
|
|
operationId: StackFileInspect
|
|
parameters:
|
|
- description: Stack identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/stacks.stackFileResponse'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Stack not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Retrieve the content of the Stack file for the specified stack
|
|
tags:
|
|
- stacks
|
|
/stacks/{id}/migrate:
|
|
post:
|
|
description: |-
|
|
Migrate a stack from an endpoint to another endpoint. It will re-create the stack inside the target endpoint before removing the original stack.
|
|
**Access policy**: restricted
|
|
operationId: StackMigrate
|
|
parameters:
|
|
- description: Stack identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Stacks created before version 1.18.0 might not have an associated
|
|
endpoint identifier. Use this optional parameter to set the endpoint identifier
|
|
used by the stack.
|
|
in: query
|
|
name: endpointId
|
|
type: integer
|
|
- description: Stack migration details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/stacks.stackMigratePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Stack'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Stack not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Migrate a stack to another endpoint
|
|
tags:
|
|
- stacks
|
|
/stacks/{id}/start:
|
|
post:
|
|
description: |-
|
|
Starts a stopped Stack.
|
|
**Access policy**: restricted
|
|
operationId: StackStart
|
|
parameters:
|
|
- description: Stack identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Stack'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: ' not found'
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Starts a stopped Stack
|
|
tags:
|
|
- stacks
|
|
/stacks/{id}/stop:
|
|
post:
|
|
description: |-
|
|
Stops a stopped Stack.
|
|
**Access policy**: restricted
|
|
operationId: StackStop
|
|
parameters:
|
|
- description: Stack identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Stack'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: ' not found'
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Stops a stopped Stack
|
|
tags:
|
|
- stacks
|
|
/status:
|
|
get:
|
|
description: |-
|
|
Retrieve Portainer status
|
|
**Access policy**: public
|
|
operationId: StatusInspect
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Status'
|
|
summary: Check Portainer status
|
|
tags:
|
|
- status
|
|
/status/version:
|
|
get:
|
|
description: |-
|
|
Check if portainer has an update available
|
|
**Access policy**: authenticated
|
|
operationId: StatusInspectVersion
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/status.inspectVersionResponse'
|
|
security:
|
|
- jwt: []
|
|
summary: Check for portainer updates
|
|
tags:
|
|
- status
|
|
/tags:
|
|
get:
|
|
description: |-
|
|
List tags.
|
|
**Access policy**: administrator
|
|
operationId: TagList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Tag'
|
|
type: array
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List tags
|
|
tags:
|
|
- tags
|
|
post:
|
|
description: |-
|
|
Create a new tag.
|
|
**Access policy**: administrator
|
|
operationId: TagCreate
|
|
parameters:
|
|
- description: Tag details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/tags.tagCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Tag'
|
|
'409':
|
|
description: Tag name exists
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a new tag
|
|
tags:
|
|
- tags
|
|
/tags/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Remove a tag.
|
|
**Access policy**: administrator
|
|
operationId: TagDelete
|
|
parameters:
|
|
- description: Tag identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Tag not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a tag
|
|
tags:
|
|
- tags
|
|
/team:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Create a new team.
|
|
**Access policy**: administrator
|
|
operationId: TeamCreate
|
|
parameters:
|
|
- description: details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/teams.teamCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Team'
|
|
'400':
|
|
description: Invalid request
|
|
'409':
|
|
description: Team already exists
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a new team
|
|
tags:
|
|
- teams
|
|
/team/{id}:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update a team.
|
|
**Access policy**: administrator
|
|
operationId: TeamUpdate
|
|
parameters:
|
|
- description: Team identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Team details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/teams.teamUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Team'
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Team not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update a team
|
|
tags:
|
|
- ''
|
|
/team_memberships:
|
|
get:
|
|
description: |-
|
|
List team memberships. Access is only available to administrators and team leaders.
|
|
**Access policy**: admin
|
|
operationId: TeamMembershipList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.TeamMembership'
|
|
type: array
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List team memberships
|
|
tags:
|
|
- team_memberships
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Create a new team memberships. Access is only available to administrators leaders of the associated team.
|
|
**Access policy**: admin
|
|
operationId: TeamMembershipCreate
|
|
parameters:
|
|
- description: Team membership details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/teammemberships.teamMembershipCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.TeamMembership'
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied to manage memberships
|
|
'409':
|
|
description: Team membership already registered
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a new team membership
|
|
tags:
|
|
- team_memberships
|
|
/team_memberships/{id}:
|
|
delete:
|
|
description: |-
|
|
Remove a team membership. Access is only available to administrators leaders of the associated team.
|
|
**Access policy**: restricted
|
|
operationId: TeamMembershipDelete
|
|
parameters:
|
|
- description: TeamMembership identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: TeamMembership not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a team membership
|
|
tags:
|
|
- team_memberships
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update a team membership. Access is only available to administrators leaders of the associated team.
|
|
**Access policy**: restricted
|
|
operationId: TeamMembershipUpdate
|
|
parameters:
|
|
- description: Team membership identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Team membership details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/teammemberships.teamMembershipUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.TeamMembership'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: TeamMembership not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update a team membership
|
|
tags:
|
|
- team_memberships
|
|
/teams:
|
|
get:
|
|
description: |-
|
|
List teams. For non-administrator users, will only list the teams they are member of.
|
|
**Access policy**: restricted
|
|
operationId: TeamList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Team'
|
|
type: array
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List teams
|
|
tags:
|
|
- teams
|
|
/teams/{id}:
|
|
delete:
|
|
description: |-
|
|
Remove a team.
|
|
**Access policy**: administrator
|
|
operationId: TeamDelete
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Team not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a team
|
|
tags:
|
|
- teams
|
|
get:
|
|
description: |-
|
|
Retrieve details about a team. Access is only available for administrator and leaders of that team.
|
|
**Access policy**: restricted
|
|
operationId: TeamInspect
|
|
parameters:
|
|
- description: Team identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.Team'
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: Team not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect a team
|
|
tags:
|
|
- teams
|
|
/teams/{id}/memberships:
|
|
get:
|
|
description: |-
|
|
List team memberships. Access is only available to administrators and team leaders.
|
|
**Access policy**: restricted
|
|
operationId: TeamMemberships
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.TeamMembership'
|
|
type: array
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List team memberships
|
|
tags:
|
|
- team_memberships
|
|
/templates:
|
|
get:
|
|
description: |-
|
|
List available templates.
|
|
**Access policy**: restricted
|
|
operationId: TemplateList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/templates.listResponse'
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List available templates
|
|
tags:
|
|
- templates
|
|
/templates/file:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Get a template's file
|
|
**Access policy**: restricted
|
|
operationId: TemplateFile
|
|
parameters:
|
|
- description: File details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/templates.filePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/templates.fileResponse'
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Get a template's file
|
|
tags:
|
|
- templates
|
|
/upload/tls/{certificate}:
|
|
post:
|
|
consumes:
|
|
- multipart/form-data
|
|
description: |-
|
|
Use this endpoint to upload TLS files.
|
|
**Access policy**: administrator
|
|
operationId: UploadTLS
|
|
parameters:
|
|
- description: TLS file type. Valid values are 'ca', 'cert' or 'key'.
|
|
enum:
|
|
- ca
|
|
- cert
|
|
- key
|
|
in: path
|
|
name: certificate
|
|
required: true
|
|
type: string
|
|
- description: Folder where the TLS file will be stored. Will be created if
|
|
not existing
|
|
in: formData
|
|
name: folder
|
|
required: true
|
|
type: string
|
|
- description: The file to upload
|
|
in: formData
|
|
name: file
|
|
required: true
|
|
type: file
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Upload TLS files
|
|
tags:
|
|
- upload
|
|
/users:
|
|
get:
|
|
description: |-
|
|
List Portainer users.
|
|
Non-administrator users will only be able to list other non-administrator user accounts.
|
|
**Access policy**: restricted
|
|
operationId: UserList
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.User'
|
|
type: array
|
|
'400':
|
|
description: Invalid request
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: List users
|
|
tags:
|
|
- users
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Create a new Portainer user.
|
|
Only team leaders and administrators can create users.
|
|
Only administrators can create an administrator user account.
|
|
**Access policy**: restricted
|
|
operationId: UserCreate
|
|
parameters:
|
|
- description: User details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/users.userCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.User'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'409':
|
|
description: User already exists
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Create a new user
|
|
tags:
|
|
- users
|
|
/users/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Remove a user.
|
|
**Access policy**: administrator
|
|
operationId: UserDelete
|
|
parameters:
|
|
- description: User identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: User not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Remove a user
|
|
tags:
|
|
- users
|
|
get:
|
|
description: |-
|
|
Retrieve details about a user.
|
|
**Access policy**: administrator
|
|
operationId: UserInspect
|
|
parameters:
|
|
- description: User identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.User'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: User not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect a user
|
|
tags:
|
|
- users
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update user details. A regular user account can only update his details.
|
|
**Access policy**: authenticated
|
|
operationId: UserUpdate
|
|
parameters:
|
|
- description: User identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: User details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/users.userUpdatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.User'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: User not found
|
|
'409':
|
|
description: Username already exist
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update a user
|
|
tags:
|
|
- users
|
|
/users/{id}/memberships:
|
|
get:
|
|
description: |-
|
|
Inspect a user memberships.
|
|
**Access policy**: authenticated
|
|
operationId: UserMembershipsInspect
|
|
parameters:
|
|
- description: User identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.TeamMembership'
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Inspect a user memberships
|
|
tags:
|
|
- users
|
|
/users/{id}/passwd:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Update password for the specified user.
|
|
**Access policy**: authenticated
|
|
operationId: UserUpdatePassword
|
|
parameters:
|
|
- description: identifier
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/users.userUpdatePasswordPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'400':
|
|
description: Invalid request
|
|
'403':
|
|
description: Permission denied
|
|
'404':
|
|
description: User not found
|
|
'500':
|
|
description: Server error
|
|
security:
|
|
- jwt: []
|
|
summary: Update password for a user
|
|
tags:
|
|
- users
|
|
/users/admin/check:
|
|
get:
|
|
description: |-
|
|
Check if an administrator account exists in the database.
|
|
**Access policy**: public
|
|
operationId: UserAdminCheck
|
|
responses:
|
|
'204':
|
|
description: Success
|
|
'404':
|
|
description: User not found
|
|
summary: Check administrator account existence
|
|
tags:
|
|
- users
|
|
/users/admin/init:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Initialize the 'admin' user account.
|
|
**Access policy**: public
|
|
operationId: UserAdminInit
|
|
parameters:
|
|
- description: User details
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/users.adminInitPayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
schema:
|
|
$ref: '#/definitions/portainer.User'
|
|
'400':
|
|
description: Invalid request
|
|
'409':
|
|
description: Admin user already initialized
|
|
'500':
|
|
description: Server error
|
|
summary: Initialize administrator account
|
|
tags:
|
|
- ''
|
|
/webhooks:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Webhook data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/webhooks.webhookCreatePayload'
|
|
- in: query
|
|
name: EndpointID
|
|
type: integer
|
|
- in: query
|
|
name: ResourceID
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/portainer.Webhook'
|
|
type: array
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: List webhooks
|
|
tags:
|
|
- webhooks
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Webhook data
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/webhooks.webhookCreatePayload'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/portainer.Webhook'
|
|
'400':
|
|
description: ''
|
|
'409':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: Create a webhook
|
|
tags:
|
|
- webhooks
|
|
/webhooks/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Webhook id
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'202':
|
|
description: Webhook deleted
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: Delete a webhook
|
|
tags:
|
|
- webhooks
|
|
/webhooks/{token}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Acts on a passed in token UUID to restart the docker service
|
|
parameters:
|
|
- description: Webhook token
|
|
in: path
|
|
name: token
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'202':
|
|
description: Webhook executed
|
|
'400':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
summary: Execute a webhook
|
|
tags:
|
|
- webhooks
|
|
/websocket/attach:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
If the nodeName query parameter is present, the request will be proxied to the underlying agent endpoint.
|
|
If the nodeName query parameter is not specified, the request will be upgraded to the websocket protocol and
|
|
an AttachStart operation HTTP request will be created and hijacked.
|
|
Authentication and access is controlled via the mandatory token query parameter.
|
|
parameters:
|
|
- description: endpoint ID of the endpoint where the resource is located
|
|
in: query
|
|
name: endpointId
|
|
required: true
|
|
type: integer
|
|
- description: node name
|
|
in: query
|
|
name: nodeName
|
|
type: string
|
|
- description: JWT token used for authentication against this endpoint
|
|
in: query
|
|
name: token
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'403':
|
|
description: ''
|
|
'404':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: Attach a websocket
|
|
tags:
|
|
- websocket
|
|
/websocket/exec:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
If the nodeName query parameter is present, the request will be proxied to the underlying agent endpoint.
|
|
If the nodeName query parameter is not specified, the request will be upgraded to the websocket protocol and
|
|
an ExecStart operation HTTP request will be created and hijacked.
|
|
Authentication and access is controlled via the mandatory token query parameter.
|
|
parameters:
|
|
- description: endpoint ID of the endpoint where the resource is located
|
|
in: query
|
|
name: endpointId
|
|
required: true
|
|
type: integer
|
|
- description: node name
|
|
in: query
|
|
name: nodeName
|
|
type: string
|
|
- description: JWT token used for authentication against this endpoint
|
|
in: query
|
|
name: token
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'409':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: Execute a websocket
|
|
tags:
|
|
- websocket
|
|
/websocket/pod:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
The request will be upgraded to the websocket protocol.
|
|
Authentication and access is controlled via the mandatory token query parameter.
|
|
parameters:
|
|
- description: endpoint ID of the endpoint where the resource is located
|
|
in: query
|
|
name: endpointId
|
|
required: true
|
|
type: integer
|
|
- description: namespace where the container is located
|
|
in: query
|
|
name: namespace
|
|
required: true
|
|
type: string
|
|
- description: name of the pod containing the container
|
|
in: query
|
|
name: podName
|
|
required: true
|
|
type: string
|
|
- description: name of the container
|
|
in: query
|
|
name: containerName
|
|
required: true
|
|
type: string
|
|
- description: command to execute in the container
|
|
in: query
|
|
name: command
|
|
required: true
|
|
type: string
|
|
- description: JWT token used for authentication against this endpoint
|
|
in: query
|
|
name: token
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
'400':
|
|
description: ''
|
|
'403':
|
|
description: ''
|
|
'404':
|
|
description: ''
|
|
'500':
|
|
description: ''
|
|
security:
|
|
- jwt: []
|
|
summary: Execute a websocket on pod
|
|
tags:
|
|
- websocket
|
|
schemes:
|
|
- http
|
|
- https
|
|
securityDefinitions:
|
|
jwt:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: '2.0'
|
|
tags:
|
|
- description: Authenticate against Portainer HTTP API
|
|
name: auth
|
|
- description: Manage Custom Templates
|
|
name: custom_templates
|
|
- description: Manage how Portainer connects to the DockerHub
|
|
name: dockerhub
|
|
- description: Manage Edge Groups
|
|
name: edge_groups
|
|
- description: Manage Edge Jobs
|
|
name: edge_jobs
|
|
- description: Manage Edge Stacks
|
|
name: edge_stacks
|
|
- description: Manage Edge Templates
|
|
name: edge_templates
|
|
- description: Manage Edge related endpoint settings
|
|
name: edge
|
|
- description: Manage Docker environments
|
|
name: endpoints
|
|
- description: Manage endpoint groups
|
|
name: endpoint_groups
|
|
- description: Fetch the message of the day
|
|
name: motd
|
|
- description: Manage Docker registries
|
|
name: registries
|
|
- description: Manage access control on Docker resources
|
|
name: resource_controls
|
|
- description: Manage roles
|
|
name: roles
|
|
- description: Manage Portainer settings
|
|
name: settings
|
|
- description: Information about the Portainer instance
|
|
name: status
|
|
- description: Manage Docker stacks
|
|
name: stacks
|
|
- description: Manage users
|
|
name: users
|
|
- description: Manage tags
|
|
name: tags
|
|
- description: Manage teams
|
|
name: teams
|
|
- description: Manage team memberships
|
|
name: team_memberships
|
|
- description: Manage App Templates
|
|
name: templates
|
|
- description: Manage stacks
|
|
name: stacks
|
|
- description: Upload files
|
|
name: upload
|
|
- description: Manage webhooks
|
|
name: webhooks
|
|
- description: Create exec sessions using websockets
|
|
name: websocket
|