openapi: 3.0.3 info: title: MediaValet UserGroups API description: |- The MediaValet API is a RESTful, JSON, hypermedia-driven service that supplies data to clients consuming the MediaValet cloud digital asset management (DAM) platform. The service applies business rules, permission rules, and other data processing to standardize what is returned. Requests go to the API gateway at https://api.mediavalet.com and must carry two credentials: an OAuth 2.0 / OpenID Connect Bearer access token issued by https://login.mediavalet.com/connect/token, and a per-account subscription key in the Ocp-Apim-Subscription-Key header. Requests also carry an x-mv-api-version header to select the API version. Access requires a MediaValet subscription and registration in the MediaValet Developer Portal at https://developer.mediavalet.com. PROVENANCE: this definition is derived operation-for-operation from MediaValet's own published Postman collection ("MediaValet API", collection 55cc404f-b818-43ba-87c2-1a07f2a47bd9) served at https://docs.mediavalet.com/api/collections/15676803/TzRUB7XE. Paths, methods, parameters, request bodies, response status codes and examples come from that collection. Schemas are inferred from the collection's request/response example payloads and are indicative rather than authoritative. version: '1.0' contact: name: MediaValet url: https://developer.mediavalet.com termsOfService: https://www.mediavalet.com/terms-of-service servers: - url: https://api.mediavalet.com description: MediaValet API gateway (public) security: - oauth2: - api subscriptionKey: [] tags: - name: UserGroups description: User groups and group membership. paths: /groups: get: operationId: retrieveGroups summary: Retrieve Groups description: Retrieves list of groups that belong to the Organizational Unit. tags: - UserGroups parameters: - name: x-mv-api-version in: header required: false description: (Required) The requested API version schema: type: string example: '1.2' responses: '200': description: Request was successful. content: application/json: schema: type: object properties: roleName: type: string roleDescription: type: string inheritedFrom: type: array items: type: string permissions: type: array items: type: string id: type: string format: uuid repositories: type: array items: type: string format: uuid orgUnitId: type: string format: uuid orgUnitName: type: string libraryName: type: array items: type: string isDefaultGroup: type: boolean hasCategoryDenyPolicy: type: array items: type: string hasCategoryAllowPolicy: type: array items: type: string _links: type: object properties: self: type: string functions: type: array items: type: string translationKeys: type: object properties: dolor_b: type: object proident_fb8: type: object ullamco84d: type: object interpolations: type: object properties: aute_c: type: object qui_b1: type: object example: roleName: roleDescription: inheritedFrom: - - permissions: - - id: repositories: - - orgUnitId: orgUnitName: libraryName: - - isDefaultGroup: hasCategoryDenyPolicy: - - hasCategoryAllowPolicy: - - _links: self: functions: - - translationKeys: dolor_b: {} proident_fb8: {} ullamco84d: {} interpolations: aute_c: {} qui_b1: {} '401': description: The current user is not authorized to view this end-point. '403': description: The user does not have permission to perform this operation. '500': description: The request failed because of a problem on the server. post: operationId: createGroup summary: Create Group description: Creates the user group and gives it permissions to the library. tags: - UserGroups parameters: - name: x-mv-api-version in: header required: false description: (Required) The requested API version schema: type: string example: '1.2' requestBody: required: true content: application/json: schema: type: object properties: roleName: type: string roleDescription: type: string inheritedFrom: type: array items: type: string permissions: type: array items: type: string id: type: string format: uuid repositories: type: array items: type: string format: uuid orgUnitId: type: string format: uuid orgUnitName: type: string libraryName: type: array items: type: string hasCategoryDenyPolicy: type: array items: type: string hasCategoryAllowPolicy: type: array items: type: string _links: type: object properties: self: type: string functions: type: array items: type: string translationKeys: type: object properties: exf: type: object nostrud_4: type: object interpolations: type: object properties: adipisicing_5: type: object non4d: type: object example: roleName: roleDescription: inheritedFrom: - - permissions: - - id: repositories: - - orgUnitId: orgUnitName: libraryName: - - hasCategoryDenyPolicy: - - hasCategoryAllowPolicy: - - _links: self: functions: - - translationKeys: exf: {} nostrud_4: {} interpolations: adipisicing_5: {} non4d: {} responses: '202': description: Request was accepted. '400': description: There was a problem with the data sent with the request. '401': description: The current user is not authorized to view this end-point. '403': description: The user does not have permission to perform this operation. '409': description: A group with the same name already exists. '500': description: The request failed because of a problem on the server. /groups/{id}: get: operationId: retrieveGroupDetails summary: Retrieve Group Details description: Retrieves group details based on group id. tags: - UserGroups parameters: - name: id in: path required: true description: id path parameter. schema: type: string - name: x-mv-api-version in: header required: false description: (Required) The requested API version schema: type: string example: '1.2' responses: '200': description: Request was successful. content: application/json: schema: type: array items: type: object properties: roleName: type: string roleDescription: type: string inheritedFrom: type: array items: type: string permissions: type: array items: type: string id: type: string format: uuid repositories: type: array items: type: string format: uuid orgUnitId: type: string format: uuid orgUnitName: type: string libraryName: type: array items: type: string isDefaultGroup: type: boolean hasCategoryDenyPolicy: type: array items: type: string hasCategoryAllowPolicy: type: array items: type: string _links: type: object properties: self: type: string functions: type: array items: type: string translationKeys: type: object properties: occaecat6f: type: object interpolations: type: object properties: doloref22: type: object incididuntb: type: object quise8: type: object ut87: type: object example: - roleName: roleDescription: inheritedFrom: - - permissions: - - id: repositories: - - orgUnitId: orgUnitName: libraryName: - - isDefaultGroup: hasCategoryDenyPolicy: - - hasCategoryAllowPolicy: - - _links: self: functions: - - translationKeys: occaecat6f: {} interpolations: doloref22: {} incididuntb: {} quise8: {} ut87: {} - roleName: roleDescription: inheritedFrom: - - permissions: - - id: repositories: - - orgUnitId: orgUnitName: libraryName: - - isDefaultGroup: hasCategoryDenyPolicy: - - hasCategoryAllowPolicy: - - _links: self: functions: - - translationKeys: culpa_36: {} interpolations: deserunt00f: {} mollita: {} Ut_f: {} elit_5: {} '401': description: The current user is not authorized to view this end-point. '403': description: The user does not have permission to perform this operation. '404': description: An user group was not found. '500': description: The request failed because of a problem on the server. /groups/{userGroupId}/categories: get: operationId: retrieveGroupCategories summary: Retrieve Group Categories description: Retrieves list of categories based on the group id. tags: - UserGroups parameters: - name: userGroupId in: path required: true description: userGroupId path parameter. schema: type: string - name: x-mv-api-version in: header required: false description: (Required) The requested API version schema: type: string example: '1.2' responses: '200': description: Request was successful. content: application/json: schema: type: object properties: categories: type: array items: type: object properties: id: type: string format: uuid name: type: string parentId: type: string format: uuid tree: type: object properties: path: type: string name: type: string idPath: type: string id: type: string subfolderCount: type: integer hasDirectAccess: type: boolean permission: type: string inherited: type: boolean watermarkedCategories: type: array items: type: object properties: id: type: string format: uuid name: type: string parentId: type: string format: uuid tree: type: object properties: path: type: string name: type: string idPath: type: string id: type: string subfolderCount: type: integer hasDirectAccess: type: boolean permission: type: string inherited: type: boolean permissionRestrictedCategories: type: array items: type: object properties: id: type: string format: uuid name: type: string parentId: type: string format: uuid tree: type: object properties: path: type: string name: type: string idPath: type: string id: type: string subfolderCount: type: integer hasDirectAccess: type: boolean permission: type: string inherited: type: boolean _links: type: object properties: self: type: string functions: type: array items: type: string translationKeys: type: object properties: dolore_ff8: type: object in8: type: object mollitd4a: type: object infff: type: object amet_01: type: object interpolations: type: object properties: in8: type: object eabad: type: object aliquip_da4: type: object permissions: type: array items: type: string example: categories: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: watermarkedCategories: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: permissionRestrictedCategories: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: _links: self: functions: - - translationKeys: dolore_ff8: {} in8: {} mollitd4a: {} infff: {} amet_01: {} interpolations: in8: {} eabad: {} aliquip_da4: {} permissions: - asset:createVideoClip - lightbox:transferOwnership '401': description: The current user is not authorized to view this end-point. '403': description: The user does not have permission to perform this operation. '500': description: The request failed because of a problem on the server. patch: operationId: updateGroupWithPatchOperations summary: Update Group With Patch Operations description: Updates user group using a list of patch operations. tags: - UserGroups parameters: - name: userGroupId in: path required: true description: userGroupId path parameter. schema: type: string - name: x-mv-api-version in: header required: false description: (Required) The requested API version schema: type: string example: '1.2' requestBody: required: true content: application/json: schema: type: array items: type: object properties: op: type: string path: type: string value: type: object from: type: string example: - op: path: value: {} from: - op: path: value: {} from: responses: '202': description: Request was accepted. content: application/json: schema: type: object properties: categories: type: array items: type: object properties: id: type: string format: uuid name: type: string parentId: type: string format: uuid tree: type: object properties: path: type: string name: type: string idPath: type: string id: type: string subfolderCount: type: integer hasDirectAccess: type: boolean permission: type: string inherited: type: boolean watermarkedCategories: type: array items: type: object properties: id: type: string format: uuid name: type: string parentId: type: string format: uuid tree: type: object properties: path: type: string name: type: string idPath: type: string id: type: string subfolderCount: type: integer hasDirectAccess: type: boolean permission: type: string inherited: type: boolean permissionRestrictedCategories: type: array items: type: object properties: id: type: string format: uuid name: type: string parentId: type: string format: uuid tree: type: object properties: path: type: string name: type: string idPath: type: string id: type: string subfolderCount: type: integer hasDirectAccess: type: boolean permission: type: string inherited: type: boolean _links: type: object properties: self: type: string functions: type: array items: type: string translationKeys: type: object properties: dolore_ff8: type: object in8: type: object mollitd4a: type: object infff: type: object amet_01: type: object interpolations: type: object properties: in8: type: object eabad: type: object aliquip_da4: type: object permissions: type: array items: type: string example: categories: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: watermarkedCategories: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: permissionRestrictedCategories: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: - id: name: parentId: tree: path: name: idPath: id: subfolderCount: hasDirectAccess: permission: inherited: _links: self: functions: - - translationKeys: dolore_ff8: {} in8: {} mollitd4a: {} infff: {} amet_01: {} interpolations: in8: {} eabad: {} aliquip_da4: {} permissions: - asset:createVideoClip - lightbox:transferOwnership '400': description: There was a problem with the data sent with the request. '401': description: The current user is not authorized to view this end-point. '403': description: The user does not have permission to perform this operation. '404': description: An user group was not found. '500': description: The request failed because of a problem on the server. /groups/{userGroupId}: put: operationId: updateGroup summary: Update Group description: Updates user group and gives/revokes permission to the library. tags: - UserGroups parameters: - name: userGroupId in: path required: true description: userGroupId path parameter. schema: type: string - name: x-mv-api-version in: header required: false description: (Required) The requested API version schema: type: string example: '1.2' requestBody: required: true content: application/json: schema: type: object properties: roleName: type: string roleDescription: type: string inheritedFrom: type: array items: type: string permissions: type: array items: type: string id: type: string format: uuid repositories: type: array items: type: string format: uuid orgUnitId: type: string format: uuid orgUnitName: type: string libraryName: type: array items: type: string hasCategoryDenyPolicy: type: array items: type: string hasCategoryAllowPolicy: type: array items: type: string _links: type: object properties: self: type: string functions: type: array items: type: string translationKeys: type: object properties: exf: type: object nostrud_4: type: object interpolations: type: object properties: adipisicing_5: type: object non4d: type: object example: roleName: roleDescription: inheritedFrom: - - permissions: - - id: repositories: - - orgUnitId: orgUnitName: libraryName: - - hasCategoryDenyPolicy: - - hasCategoryAllowPolicy: - - _links: self: functions: - - translationKeys: exf: {} nostrud_4: {} interpolations: adipisicing_5: {} non4d: {} responses: '202': description: Request was accepted. content: application/json: schema: type: object properties: roleName: type: string roleDescription: type: string inheritedFrom: type: array items: type: string permissions: type: array items: type: string id: type: string format: uuid repositories: type: array items: type: string format: uuid orgUnitId: type: string format: uuid orgUnitName: type: string libraryName: type: array items: type: string isDefaultGroup: type: boolean hasCategoryDenyPolicy: type: array items: type: string hasCategoryAllowPolicy: type: array items: type: string _links: type: object properties: self: type: string functions: type: array items: type: string translationKeys: type: object properties: dolor_b: type: object proident_fb8: type: object ullamco84d: type: object interpolations: type: object properties: aute_c: type: object qui_b1: type: object example: roleName: roleDescription: inheritedFrom: - - permissions: - - id: repositories: - - orgUnitId: orgUnitName: libraryName: - - isDefaultGroup: hasCategoryDenyPolicy: - - hasCategoryAllowPolicy: - - _links: self: functions: - - translationKeys: dolor_b: {} proident_fb8: {} ullamco84d: {} interpolations: aute_c: {} qui_b1: {} '400': description: There was a problem with the data sent with the request. '401': description: The current user is not authorized to view this end-point. '403': description: The user does not have permission to perform this operation. '404': description: An user group was not found. '500': description: The request failed because of a problem on the server. delete: operationId: removeGroup summary: Remove Group description: Removes the user group and detaches its permissions from the library. tags: - UserGroups parameters: - name: userGroupId in: path required: true description: userGroupId path parameter. schema: type: string - name: x-mv-api-version in: header required: false description: (Required) The requested API version schema: type: string example: '1.2' responses: '202': description: Request was accepted. '400': description: There was a problem with the data sent with the request. '401': description: The current user is not authorized to view this end-point. '403': description: Server refused the request. '404': description: An user group was not found. '500': description: The request failed because of a problem on the server. components: securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 / OpenID Connect issued by https://iam.mediavalet.com via https://login.mediavalet.com. Send the access token as a Bearer Authorization header. flows: authorizationCode: authorizationUrl: https://login.mediavalet.com/connect/authorize tokenUrl: https://login.mediavalet.com/connect/token refreshUrl: https://login.mediavalet.com/connect/token scopes: openid: OpenID Connect identity profile: User profile claims api: Access the MediaValet API api:service_principal: Service-principal (machine) access to the MediaValet API iam.admin: Administer MediaValet identity and access management iam.provisioning: Provision users and organizations offline_access: Obtain a refresh token clientCredentials: tokenUrl: https://login.mediavalet.com/connect/token scopes: api: Access the MediaValet API api:service_principal: Service-principal (machine) access to the MediaValet API password: tokenUrl: https://login.mediavalet.com/connect/token scopes: openid: OpenID Connect identity api: Access the MediaValet API offline_access: Obtain a refresh token subscriptionKey: type: apiKey in: header name: Ocp-Apim-Subscription-Key description: Per-account API subscription key issued through the MediaValet Developer Portal (Azure API Management).