openapi: 3.0.1
info:
description: |-
The purpose of the catalog is to store ProActive objects.
A catalog is subdivided into buckets.
Each bucket manages zero, one or more
versioned ProActive objects.
license:
name: GNU Affero General Public License v3.0
url: https://github.com/ow2-proactive/catalog/blob/master/LICENSE.txt
title: CatalogObjectEntity Catalog API
version: 1.0"
servers:
- description: Generated server url
url: https://trydev2.activeeon.com:8443/catalog
paths:
/graphql:
post:
operationId: executeOperation
parameters:
- explode: false
in: header
name: sessionid
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
additionalProperties:
type: object
type: object
required: true
responses:
"200":
content:
application/json:
schema:
additionalProperties:
type: object
type: object
description: OK
tags:
- graphql-controller
x-content-type: application/json
x-accepts: application/json
/buckets:
delete:
operationId: cleanEmpty
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
responses:
"401":
description: User not authenticated
"403":
description: Permission denied
"200":
description: OK
summary: Delete the empty buckets
tags:
- bucket-controller
x-accepts: application/json
get:
operationId: list
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: false
schema:
type: string
style: simple
- description: The name of the user who owns the Bucket
explode: true
in: query
name: owner
required: false
schema:
type: string
style: form
- description: The name of the tenant that has access to the Bucket
explode: true
in: query
name: tenant
required: false
schema:
type: string
style: form
- description: The kind(s) of objects that buckets must contain.
Multiple
kinds can be specified using comma separators
explode: true
in: query
name: kind
required: false
schema:
type: string
style: form
- description: The Content-Type of objects that buckets must contain
explode: true
in: query
name: contentType
required: false
schema:
type: string
style: form
- description: The tag of objects that buckets must contain
explode: true
in: query
name: objectTag
required: false
schema:
type: string
style: form
- description: "The buckets must contain objects which have the given job-planner\
\ association status.
Can be ALL, PLANNED, DEACTIVATED, FAILED or UNPLANNED.
ALL will filter objects which have an association with any status.
UNPLANNED will filter objects without any association."
explode: true
in: query
name: associationStatus
required: false
schema:
enum:
- ALL
- PLANNED
- DEACTIVATED
- FAILED
- UNPLANNED
type: string
style: form
- description: The name of objects that buckets must contain
explode: true
in: query
name: objectName
required: false
schema:
type: string
style: form
- description: The bucket name contains the value of this parameter (case insensitive)
explode: true
in: query
name: bucketName
required: false
schema:
type: string
style: form
- description: Include only objects whose project name contains the given string.
explode: true
in: query
name: projectName
required: false
schema:
type: string
style: form
- description: Include only objects whose last commit belong to the given user.
explode: true
in: query
name: lastCommitBy
required: false
schema:
type: string
style: form
- description: Include only objects have been committed at least once by the
given user.
explode: true
in: query
name: committedAtLeastOnceBy
required: false
schema:
type: string
style: form
- description: Include only objects whose last commit time is greater than the
given EPOCH time.
explode: true
in: query
name: lastCommitTimeGreater
required: false
schema:
default: 0
format: int64
type: integer
style: form
- description: Include only objects whose last commit time is less than the
given EPOCH time.
explode: true
in: query
name: lastCommitTimeLessThan
required: false
schema:
default: 0
format: int64
type: integer
style: form
- description: "If true, buckets without objects matching the filters will be\
\ returned with objectCount=0. Default is false"
explode: true
in: query
name: allBuckets
required: false
schema:
default: "false"
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketMetadata'
type: array
description: User not authenticated
"403":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketMetadata'
type: array
description: Permission denied
"200":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketMetadata'
type: array
description: OK
summary: Lists the buckets
tags:
- bucket-controller
x-accepts: '*/*'
post:
operationId: create
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: "The unique name of the Bucket.
The name of bucket can be\
\ between 3 and 63 characters long, and can contain only lower-case characters,\
\ numbers, and dashes.
A bucket's name must start with a lowercase\
\ letter and cannot terminate with a dash"
explode: true
in: query
name: name
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: form
- description: The name of the user that will own the Bucket. Defaults to GROUP:public-objects
explode: true
in: query
name: owner
required: false
schema:
default: GROUP:public-objects
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: Permission denied
"201":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: Created
summary: Creates a new bucket
tags:
- bucket-controller
x-accepts: '*/*'
/buckets/{bucketName}:
delete:
description: "Note: it is forbidden to delete a non-empty bucket. You need to\
\ delete manually all workflows in the bucket before."
operationId: delete
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the existing Bucket
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
responses:
"404":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: Bucket not found
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: OK
summary: Delete an empty bucket
tags:
- bucket-controller
x-accepts: '*/*'
get:
operationId: getMetadata
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: false
schema:
type: string
style: simple
- description: The name of the existing Bucket
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
responses:
"404":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: Bucket not found
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: OK
summary: Gets a bucket's metadata by ID
tags:
- bucket-controller
x-accepts: '*/*'
put:
operationId: updateBucketOwner
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the existing Bucket
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: The new name of the user that will own the Bucket
explode: true
in: query
name: owner
required: true
schema:
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketMetadata'
description: OK
summary: Update bucket owner
tags:
- bucket-controller
x-accepts: '*/*'
/buckets/{bucketName}/resources:
get:
description: "Note: Returns catalog objects metadata associated to the latest\
\ revision."
operationId: list_1
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: false
schema:
type: string
style: simple
- explode: false
in: path
name: bucketName
required: true
schema:
type: string
style: simple
- description: Filter according to kind(s).
Multiple kinds can be specified
using comma separators
explode: true
in: query
name: kind
required: false
schema:
type: string
style: form
- description: Filter according to Content-Type.
explode: true
in: query
name: contentType
required: false
schema:
type: string
style: form
- description: Filter according to Object Name.
explode: true
in: query
name: objectName
required: false
schema:
type: string
style: form
- description: Filter according to Object Tag.
explode: true
in: query
name: objectTag
required: false
schema:
type: string
style: form
- description: "Filter according to Job-Planner association status.
If enabled,\
\ only objects for which a job-planner association exists with the provided\
\ status will be returned.
Parameter can be ALL, PLANNED, DEACTIVATED,\
\ FAILED or UNPLANNED.
ALL will filter objects which have an association\
\ with any status.
UNPLANNED will filter objects without any association."
explode: true
in: query
name: associationStatus
required: false
schema:
enum:
- ALL
- PLANNED
- DEACTIVATED
- FAILED
- UNPLANNED
type: string
style: form
- description: Include only objects whose project name contains the given string.
explode: true
in: query
name: projectName
required: false
schema:
type: string
style: form
- description: Include only objects whose last commit belong to the given user.
explode: true
in: query
name: lastCommitBy
required: false
schema:
type: string
style: form
- description: Include only objects that have been committed at least once by
the given user.
explode: true
in: query
name: committedAtLeastOnceBy
required: false
schema:
type: string
style: form
- description: Include only objects whose last commit time is greater than the
given EPOCH time.
explode: true
in: query
name: lastCommitTimeGreater
required: false
schema:
format: int64
type: integer
style: form
- description: Include only objects whose last commit time is less than the
given EPOCH time.
explode: true
in: query
name: lastCommitTimeLessThan
required: false
schema:
format: int64
type: integer
style: form
- description: Give a list of name separated by comma to get them in an archive
explode: true
in: query
name: listObjectNamesForArchive
required: false
schema:
items:
type: string
type: array
style: form
- description: Page number
explode: true
in: query
name: pageNo
required: false
schema:
default: 0
format: int32
type: integer
style: form
- description: Page size
explode: true
in: query
name: pageSize
required: false
schema:
default: 2147483647
format: int32
type: integer
style: form
responses:
"404":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/CatalogObjectMetadata'
type: array
description: Bucket not found
"206":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/CatalogObjectMetadata'
type: array
description: Missing object
"401":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/CatalogObjectMetadata'
type: array
description: User not authenticated
summary: Lists catalog objects metadata
tags:
- catalog-object-controller
x-accepts: '*/*'
post:
operationId: create_1
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the existing Bucket
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: Name of the object or empty when a ZIP archive is uploaded.
All
objects inside an archive will be stored inside the catalog.
explode: true
in: query
name: name
required: false
schema:
pattern: "^[^\\s\\/,]+(\\s+[^\\s\\/,]+)*$"
type: string
style: form
- description: Project of the object
explode: true
in: query
name: projectName
required: false
schema:
default: ""
type: string
style: form
- description: List of comma separated tags of the object
explode: true
in: query
name: tags
required: false
schema:
pattern: "^([a-zA-Z][\\s0-9a-zA-Z-_.\\/]+[,]*)*(?It can be either noAccess,\
\ read, write or admin."
explode: true
in: query
name: accessType
required: true
schema:
enum:
- noAccess
- read
- write
- admin
type: string
style: form
- description: The name of the user that is benefiting from the access grant.
explode: true
in: query
name: username
required: true
schema:
default: ""
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: OK
summary: Update a user grant access for a catalog object
tags:
- catalog-object-grant-controller
x-accepts: '*/*'
/buckets/{bucketName}/resources/{catalogObjectName}/grant/group:
delete:
operationId: deleteCatalogObjectGrantForAGroup
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog object is stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: "The name of the object in the bucket, which is the subject of\
\ the grant."
explode: false
in: path
name: catalogObjectName
required: true
schema:
pattern: "^[^\\s\\/,]+(\\s+[^\\s\\/,]+)*$"
type: string
style: simple
- description: The name of the group of users that are benefiting of the access
grant.
explode: true
in: query
name: userGroup
required: true
schema:
default: ""
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: OK
summary: Delete a user group grant access for a catalog object
tags:
- catalog-object-grant-controller
x-accepts: '*/*'
post:
operationId: createCatalogObjectGrantForAGroup
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog object is stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: "The name of the object in the bucket, which is the subject of\
\ the grant."
explode: false
in: path
name: catalogObjectName
required: true
schema:
pattern: "^[^\\s\\/,]+(\\s+[^\\s\\/,]+)*$"
type: string
style: simple
- description: "The type of the access grant.
It can be either noAccess,\
\ read, write or admin."
explode: true
in: query
name: accessType
required: true
schema:
enum:
- noAccess
- read
- write
- admin
type: string
style: form
- description: "The new priority of the access grant.
It can be a value\
\ from 1 (lowest) to 10 (highest), with 5 as default.
Priorities are\
\ used to compute the final access rights of a user belonging to multiple\
\ groups.
Group grants with the same priority will resolve with the\
\ default accessType order (admin > write > read > noAccess).
Finally,\
\ please note that a user grant has always more priority than a group grant."
explode: true
in: query
name: priority
required: true
schema:
default: 5
maximum: 10
minimum: 1
type: integer
style: form
- description: The name of the group of users that will benefit of the access
grant.
explode: true
in: query
name: userGroup
required: true
schema:
default: ""
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: Permission denied
"201":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: Created
summary: Create a new group grant for a catalog object
tags:
- catalog-object-grant-controller
x-accepts: '*/*'
put:
operationId: updateCatalogObjectGrantForAGroup
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog object is stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: "The name of the object in the bucket, which is the subject of\
\ the grant."
explode: false
in: path
name: catalogObjectName
required: true
schema:
pattern: "^[^\\s\\/,]+(\\s+[^\\s\\/,]+)*$"
type: string
style: simple
- description: "The new type of the access grant.
It can be either noAccess,\
\ read, write or admin."
explode: true
in: query
name: accessType
required: true
schema:
enum:
- noAccess
- read
- write
- admin
type: string
style: form
- description: "The new priority of the access grant. It can be a value from\
\ 1 (lowest) to 10 (highest), with 5 as default.
Priorities are used\
\ to compute the final access rights of a user belonging to multiple groups.
Group grants with the same priority will resolve with the default accessType\
\ order (admin > write > read > noAccess).
Finally, please note that\
\ a user grant has always more priority than a group grant."
explode: true
in: query
name: priority
required: true
schema:
default: 5
maximum: 10
minimum: 1
type: integer
style: form
- description: The name of the group of users that are benefiting of the access
grant.
explode: true
in: query
name: userGroup
required: true
schema:
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/CatalogObjectGrantMetadata'
description: OK
summary: Update a user group grant access for a catalog object
tags:
- catalog-object-grant-controller
x-accepts: '*/*'
/buckets/{bucketName}/resources/import:
post:
description: "Can either import objects from a plain zip archive, in which case\
\ the objects kind, project name and tags must be specified. Alternatively,\
\ a ProActive Catalog package can be imported, the various information will\
\ be obtained from the METADATA json file present in the package."
operationId: importCatalogObjects
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the existing Bucket
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: Plain zip instead of a Proactive package
explode: true
in: query
name: isPlainZip
required: false
schema:
default: false
type: boolean
style: form
- description: "Commit message. If empty, the message will either be empty for\
\ a plain zip or the commit message recorded inside the ProActive Catalog\
\ package."
explode: true
in: query
name: commitMessage
required: false
schema:
default: ""
type: string
style: form
- description: Kind of the new object (only used when importing a plain zip)
explode: true
in: query
name: kind
required: false
schema:
pattern: "^([a-zA-Z0-9][a-zA-Z0-9_\\. ;=\\+\\-]{0,61}[a-zA-Z0-9]\\/?)+$"
type: string
style: form
- description: "Project of the package objects (Optional). If used with a ProActive\
\ Catalog package, will override all objects project names."
explode: true
in: query
name: projectName
required: false
schema:
default: ""
type: string
style: form
- description: "List of comma separated tags of the objects (Optional). If used\
\ with a ProActive Catalog package, will override all objects tags."
explode: true
in: query
name: tags
required: false
schema:
pattern: "^([a-zA-Z][\\s0-9a-zA-Z-_.\\/]+[,]*)*(? Note: Returns catalog objects metadata associated\
\ to the latest revision."
operationId: exportCatalogObjects
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: false
schema:
type: string
style: simple
- explode: false
in: path
name: bucketName
required: true
schema:
type: string
style: simple
- description: Plain zip instead of a Proactive package
explode: true
in: query
name: isPlainZip
required: false
schema:
default: false
type: boolean
style: form
requestBody:
content:
application/json:
schema:
items:
type: string
type: array
description: "An optional json list of catalog object names to export. If\
\ not provided, the bucket will be exported fully."
responses:
"206":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/CatalogObjectMetadata'
type: array
description: Missing object
"401":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/CatalogObjectMetadata'
type: array
description: User not authenticated
"403":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/CatalogObjectMetadata'
type: array
description: Permission denied
"404":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/CatalogObjectMetadata'
type: array
description: Bucket not found or no object was found
summary: Export catalog objects as a plain zip archive or a ProActive Catalog
Package
tags:
- catalog-object-controller
x-content-type: application/json
x-accepts: '*/*'
/buckets/{bucketName}/grant:
delete:
operationId: deleteAllBucketGrantsAssignedToABucket
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
responses:
"401":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketGrantMetadata'
type: array
description: User not authenticated
"403":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketGrantMetadata'
type: array
description: Permission denied
"200":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketGrantMetadata'
type: array
description: OK
summary: Delete all grants assigned to a bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
get:
operationId: getAllGrantsForABucket
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
responses:
"401":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketGrantMetadata'
type: array
description: User not authenticated
"403":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketGrantMetadata'
type: array
description: Permission denied
"200":
content:
'*/*':
schema:
items:
$ref: '#/components/schemas/BucketGrantMetadata'
type: array
description: OK
summary: Get all grants associated with a bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
/buckets/{bucketName}/grant/user:
delete:
operationId: deleteBucketGrantForAUser
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: The name of the user that is benefiting from the access grant.
explode: true
in: query
name: username
required: true
schema:
default: ""
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: OK
summary: Delete a user grant access for a bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
post:
operationId: createBucketGrantForAUser
parameters:
- description: The the session id used to access ProActive REST server
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: "The type of the access grant.
It can be either noAccess,\
\ read, write or admin."
explode: true
in: query
name: accessType
required: true
schema:
enum:
- noAccess
- read
- write
- admin
type: string
style: form
- description: The name of the user that will benefit of the access grant.
explode: true
in: query
name: username
required: true
schema:
default: ""
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Permission denied
"201":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Created
summary: Create a new user grant access for a bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
put:
operationId: updateBucketGrantForAUser
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: The name of the user that is benefiting from the access grant.
explode: true
in: query
name: username
required: true
schema:
default: ""
type: string
style: form
- description: "The new type of the access grant. It can be either noAccess,\
\ read, write or admin."
explode: true
in: query
name: accessType
required: true
schema:
enum:
- noAccess
- read
- write
- admin
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: OK
summary: Update the access type of an existing user bucket grant
tags:
- bucket-grant-controller
x-accepts: '*/*'
/buckets/{bucketName}/grant/group:
delete:
operationId: deleteBucketGrantForAGroup
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: The name of the group of users that are benefiting from the access
grant.
explode: true
in: query
name: userGroup
required: true
schema:
default: ""
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: OK
summary: Delete a group grant access for a bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
post:
operationId: createBucketGrantForAGroup
parameters:
- description: The session id used to access ProActive REST server
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: "The type of the access grant.
It can be either noAccess,\
\ read, write or admin."
explode: true
in: query
name: accessType
required: true
schema:
enum:
- noAccess
- read
- write
- admin
type: string
style: form
- description: |-
The new priority of the access grant.
It can be a value from 1 (lowest) to 10 (highest), with 5 as default.
Priorities are used to compute the final access rights of a user belonging to multiple groups.
Group grants with the same priority will resolve with the default accessType order (admin > write > read > noAccess).
Finally, please note that a user grant has always more priority than a group grant.
explode: true
in: query
name: priority
required: true
schema:
default: 5
maximum: 10
minimum: 1
type: integer
style: form
- description: The name of the group of users that will benefit of the access
grant.
explode: true
in: query
name: userGroup
required: true
schema:
default: ""
type: string
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Permission denied
"201":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Created
summary: Create a new user group grant access for a bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
put:
operationId: updateBucketGrantForAGroup
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
- description: The name of the group of users that are benefiting from the access
grant.
explode: true
in: query
name: userGroup
required: true
schema:
default: ""
type: string
style: form
- description: "The new type of the access grant. It can be either noAccess,\
\ read, write or admin."
explode: true
in: query
name: accessType
required: true
schema:
enum:
- noAccess
- read
- write
- admin
type: string
style: form
- description: "The new priority of the access grant.
It can be a value\
\ from 1 (lowest) to 10 (highest), with 5 as default.Priorities are used\
\ to compute the final access rights of a user belonging to multiple groups.
Group grants with the same priority will resolve with the default accessType\
\ order (admin > write > read > noAccess).
Finally, please note that\
\ a user grant has always more priority than a group grant."
explode: true
in: query
name: priority
required: true
schema:
default: 5
maximum: 10
minimum: 1
type: integer
style: form
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/BucketGrantMetadata'
description: OK
summary: Update the access type of an existing group bucket grant
tags:
- bucket-grant-controller
x-accepts: '*/*'
/buckets/{bucketName}/grant/all:
delete:
operationId: deleteAllGrantsForABucketAndItsObjects
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/AllBucketGrants'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/AllBucketGrants'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/AllBucketGrants'
description: OK
summary: Delete all grants associated with a bucket and all objects contained
in this bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
get:
operationId: getAllGrantsForABucketAndItsObjects
parameters:
- description: The session id used to access ProActive REST server.
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The name of the bucket where the catalog objects are stored.
explode: false
in: path
name: bucketName
required: true
schema:
pattern: "[a-z][a-z0-9-]{1,61}[a-z0-9]"
type: string
style: simple
responses:
"401":
content:
'*/*':
schema:
$ref: '#/components/schemas/AllBucketGrants'
description: User not authenticated
"403":
content:
'*/*':
schema:
$ref: '#/components/schemas/AllBucketGrants'
description: Permission denied
"200":
content:
'*/*':
schema:
$ref: '#/components/schemas/AllBucketGrants'
description: OK
summary: Get all grants associated with a bucket and all objects contained in
this bucket
tags:
- bucket-grant-controller
x-accepts: '*/*'
/buckets/tags:
get:
operationId: listObjectTags
responses:
"200":
content:
application/json:
schema:
items:
type: string
type: array
uniqueItems: true
description: OK
summary: Lists all tags values for all objects stored in the catalog
tags:
- catalog-object-controller
x-accepts: application/json
/buckets/resources/metadata:
put:
operationId: updateObjectMetadataMulti
parameters:
- description: sessionID
explode: false
in: header
name: sessionID
required: true
schema:
type: string
style: simple
- description: The new kind of an object
explode: true
in: query
name: kind
required: false
schema:
pattern: "^([a-zA-Z0-9][a-zA-Z0-9_\\. ;=\\+\\-]{0,61}[a-zA-Z0-9]\\/?)+$"
type: string
style: form
- description: The new Content-Type of an object - MIME type
explode: true
in: query
name: contentType
required: false
schema:
pattern: "^([a-zA-Z0-9][a-zA-Z0-9_\\. ;=\\+\\-]{0,61}[a-zA-Z0-9]\\/?)+$"
type: string
style: form
- description: The new project name of an object
explode: true
in: query
name: projectName
required: false
schema:
type: string
style: form
- description: List of comma separated tags of the object
explode: true
in: query
name: tags
required: false
schema:
pattern: "^([a-zA-Z][\\s0-9a-zA-Z-_.\\/]+[,]*)*(?