Templafy Links API
The Links API from Templafy — 2 operation(s) for links.
The Links API from Templafy — 2 operation(s) for links.
openapi: 3.0.3
info:
contact:
url: https://support.templafy.com/hc/en-us/requests/new
name: Submit support ticket
description: Please refer to our [documentation](https://support.templafy.com/hc/en-us/articles/4411351240081-Public-API-Hive-) for guidelines and examples.
title: Templafy Public DataSourceFields Links API
version: v3
termsOfService: https://www.templafy.com/templafy-saas-agreement/
servers:
- variables:
tenantId:
default: ''
description: Your Templafy subdomain, i.e., https://{TenantId}.api.templafy.com
url: https://{tenantId}.api.templafy.com/v3
tags:
- name: Links
paths:
/libraries/{spaceId}/links/folders/{folderId}/assets:
get:
tags:
- Links
summary: Lists all link assets in the folder.
description: The result does not include links from subfolders. When {searchQuery} is used the result includes links from subfolders. The search mode enables pagination with 1000 page size maximum.
parameters:
- name: spaceId
in: path
description: The identifier of the space
required: true
schema:
type: integer
format: int64
- name: folderId
in: path
description: The identifier of the folder
required: true
schema:
type: integer
format: int64
- name: searchQuery
in: query
description: Filter on link name, description and tags
schema:
type: string
- name: pageNumber
in: query
description: Page number from the result set. Page number is set to 1 by default if {searchQuery} is passed. A value passed only for the page number and not for the page size is ignored.
schema:
maximum: 65535
minimum: 1
type: integer
format: int32
- name: pageSize
in: query
description: Size of the returned page. If {searchQuery} is not set, not passing page size or having it 0 returns all the assets from the folder. Acceptable values are 0 to 1000, inclusive.
schema:
maximum: 1000
minimum: 0
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Link'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundProblemDetails'
security:
- bearerAuth:
- library.read
- library.readwrite
post:
tags:
- Links
summary: Creates the link asset.
parameters:
- name: spaceId
in: path
description: The identifier of the space
required: true
schema:
type: integer
format: int64
- name: folderId
in: path
description: The identifier of the folder
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/CreateLinkRequest'
application/json:
schema:
$ref: '#/components/schemas/CreateLinkRequest'
text/json:
schema:
$ref: '#/components/schemas/CreateLinkRequest'
application/*+json:
schema:
$ref: '#/components/schemas/CreateLinkRequest'
responses:
'201':
description: The identifier of the created asset
content:
application/json:
schema:
type: integer
format: int64
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundProblemDetails'
'409':
description: The creation cannot proceed due to a conflict with the current state of the target location. This may occur if a link with the same name already exists in this location, or if the folder intended for the creation is in the process of being deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictProblemDetails'
security:
- bearerAuth:
- library.readwrite
/libraries/{spaceId}/links/assets/{assetId}:
get:
tags:
- Links
summary: Returns the link asset by the identifier.
parameters:
- name: spaceId
in: path
description: The identifier of the space
required: true
schema:
type: integer
format: int64
- name: assetId
in: path
description: The identifier of the link to retrieve
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LinkDetails'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundProblemDetails'
security:
- bearerAuth:
- library.read
- library.readwrite
patch:
tags:
- Links
summary: Updates the link asset.
parameters:
- name: spaceId
in: path
description: The identifier of the space
required: true
schema:
type: integer
format: int64
- name: assetId
in: path
description: The identifier of the link asset
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/UpdateLinkRequest'
application/json:
schema:
$ref: '#/components/schemas/UpdateLinkRequest'
text/json:
schema:
$ref: '#/components/schemas/UpdateLinkRequest'
application/*+json:
schema:
$ref: '#/components/schemas/UpdateLinkRequest'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationProblemDetails'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundProblemDetails'
'409':
description: The update operation cannot be completed due to a conflict with the current state of the target location. This may occur if a link with the same name already exists in the destination, or if the destination folder is in the process of being deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictProblemDetails'
security:
- bearerAuth:
- library.readwrite
delete:
tags:
- Links
summary: Deletes the link by the identifier.
parameters:
- name: spaceId
in: path
description: The identifier of the space
required: true
schema:
type: integer
format: int64
- name: assetId
in: path
description: The identifier of the link to delete
required: true
schema:
type: integer
format: int64
responses:
'204':
description: No Content
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundProblemDetails'
security:
- bearerAuth:
- library.readwrite
components:
schemas:
NotFoundProblemDetails:
type: object
properties:
type:
type: string
nullable: true
title:
type: string
nullable: true
status:
type: integer
format: int32
nullable: true
detail:
type: string
nullable: true
instance:
type: string
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
example:
title: NotFound
detail: The server can not find the requested resource.
status: 404
traceId: d61f7ce-cccb-4e5b-8727-3b68a61a0559
CreateLinkRequest:
required:
- name
- url
type: object
properties:
name:
maxLength: 100
type: string
description: Display name
description:
maxLength: 250
type: string
description: Describing intended usage of the asset
nullable: true
tags:
type: array
items:
maxLength: 1024
minLength: 2
type: string
description: Tags should describe the content of the asset making it easier for a user to locate it
nullable: true
externalData:
maxLength: 100
type: string
description: External data which can be attached for future reference
nullable: true
url:
maxLength: 2048
type: string
description: A reference to the web resource. HTTP and HTTPS are supported
additionalProperties: false
description: The request model to create a link asset
ValidationProblemDetails:
type: object
properties:
errors:
type: object
additionalProperties:
type: array
items:
type: string
nullable: true
type:
type: string
nullable: true
title:
type: string
nullable: true
status:
type: integer
format: int32
nullable: true
detail:
type: string
nullable: true
instance:
type: string
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
example:
errors:
- name: The name field is required
- data: The input was invalid
title: One or more validation errors occurred.
status: 400
traceId: d61f7ce-cccb-4e5b-8727-3b68a61a0559
ConflictProblemDetails:
type: object
properties:
type:
type: string
nullable: true
title:
type: string
nullable: true
status:
type: integer
format: int32
nullable: true
detail:
type: string
nullable: true
instance:
type: string
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
example:
title: Conflict
detail: The request could not be completed due to a conflict with the current state of the resource.
status: 409
traceId: d61f7ce-cccb-4e5b-8727-3b68a61a0559
UpdateLinkRequest:
type: object
properties:
folderId:
type: integer
description: The identifier of the destination folder
format: int64
nullable: true
name:
maxLength: 100
type: string
description: A new display name of the asset
nullable: true
description:
maxLength: 250
type: string
description: Description is used to specify the intended usage of the asset
nullable: true
tags:
type: array
items:
maxLength: 1024
minLength: 2
type: string
description: Tags should describe the content of the asset making it easier for a user to locate it
nullable: true
url:
maxLength: 2048
type: string
description: A reference to the web resource. HTTP and HTTPS are supported
nullable: true
externalData:
maxLength: 100
type: string
description: External data which can be attached for future reference
nullable: true
additionalProperties: false
Link:
required:
- assetState
- description
- folderId
- id
- modifiedAt
- name
- navigationPath
- tags
- url
type: object
properties:
id:
type: integer
description: Unique asset identifier
format: int64
folderId:
type: integer
description: Unique folder identifier
format: int64
name:
maxLength: 100
minLength: 1
type: string
description: Display name
description:
maxLength: 250
type: string
tags:
type: array
items:
type: string
url:
maxLength: 2048
minLength: 1
type: string
navigationPath:
maxLength: 700
minLength: 1
type: string
description: Hierarchical path in lowercase based on the location of a link. E.g. "folder-a/folder-b/_my-link" when the location is "Folder A > Folder B > My Link"
externalData:
maxLength: 100
type: string
description: External data which can be attached for future reference
nullable: true
modifiedAt:
minLength: 1
type: string
description: Date and time in ISO 8601 format of when the asset was last modified
assetState:
$ref: '#/components/schemas/AssetStateWithoutFile'
additionalProperties: false
AssetStateWithoutFile:
enum:
- ready
type: string
description: The current state of the asset
LinkDetails:
required:
- assetState
- description
- folderId
- id
- modifiedAt
- name
- navigationPath
- tags
- url
type: object
properties:
id:
type: integer
description: Unique asset identifier
format: int64
folderId:
type: integer
description: Unique folder identifier
format: int64
name:
maxLength: 100
minLength: 1
type: string
description: Display name
description:
maxLength: 250
type: string
tags:
type: array
items:
type: string
url:
maxLength: 2048
minLength: 1
type: string
navigationPath:
maxLength: 700
minLength: 1
type: string
description: Hierarchical path in lowercase based on the location of a link. E.g. "folder-a/folder-b/_my-link" when the location is "Folder A > Folder B > My Link"
externalData:
maxLength: 100
type: string
description: External data which can be attached for future reference
nullable: true
modifiedAt:
minLength: 1
type: string
description: Date and time in ISO 8601 format of when the asset was last modified
assetState:
$ref: '#/components/schemas/AssetStateWithoutFile'
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API Key