Pryon Connector Service External API
The ConnectorServiceExternal API from Pryon — 11 operation(s) for connectorserviceexternal.
The ConnectorServiceExternal API from Pryon — 11 operation(s) for connectorserviceexternal.
openapi: 3.2.0
info:
title: Pryon Connector Service External API
version: '1.0'
description: 'Operations tagged ConnectorServiceExternal across 2 of this provider''s published API definitions: pryon-admin-openapi.json, pryon-universal-connector-may2025-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.pryon.net
description: Pryon Cloud
- url: /
tags:
- name: ConnectorServiceExternal
paths:
/api/connector/v1/connectors/{connector_id}/content-data:download:
servers:
- url: https://api.pryon.net
description: Pryon Cloud
get:
description: 'Custom methods to get ContentData
Download Content Data in multiple parts
HTTP Request:
GET https://{host}/api/connector/v1/connectors/{connector_id}/content-data:download?source_location=<source_location>&opaque_data=<opaque_data> HTTP/1.1
HOST: {host}
Range: bytes=<range-start>-<range-end>
HTTP Response:
HTTP/1.1 206 Partial Content
Content-Range: bytes <range-start>-<range-end>/<total_size>
Content-Length: <bytes-length>
Content-Type: application/octet-stream
<bytes-data>
This is a proxy through the content source.
To be implemented by the the universal connector and invoked by Pryon Ingestion Platform to pull content data from the connector.
This is called by each individual file content workflow (in Pryon''s Ingestion logic) when we have identified the content
and need to fetch the data we want to index for searching/Retrieval Views.'
operationId: ConnectorServiceExternal_DownloadContentData
parameters:
- description: Required. The identifier of the associated connector for the content download request.
in: path
name: connector_id
required: true
schema:
type: string
- in: query
name: range_header.range_start
schema:
format: int64
type: string
- in: query
name: range_header.range_end
schema:
format: int64
type: string
- in: query
name: range_header.total_size
schema:
format: int64
type: string
- description: The opaque_data is an opaque string contains additonal information that can be used to by the PULL API to retreive the content data from underlying content source along with the source_location. (e.g. drinve_id + item_id in SharePoint).
in: query
name: opaque_data
schema:
type: string
- description: The content source URI.
in: query
name: source_location
schema:
type: string
- name: Authentication
in: header
required: true
schema:
type: string
example: 'Authorization: Bearer {base64-encoded-token}'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1ContentDataResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: DownloadContentData
tags:
- ConnectorServiceExternal
/api/connector/v1/connectors/{connector_id}/content/read-permission:
servers:
- url: https://api.pryon.net
description: Pryon Cloud
get:
operationId: ConnectorServiceExternal_GetReadPermission
parameters:
- description: Required. The identifier for the connector associated with the Read Permission request.
in: path
name: connector_id
required: true
schema:
type: string
- description: The opaque_data is an opaque string contains additonal information that can be used to by the PULL API to retreive the content data from underlying content source along with the source_location. (e.g. drinve_id + item_id in SharePoint).
in: query
name: opaque_data
schema:
type: string
- description: The content source URI.
in: query
name: source_location
schema:
type: string
- description: Pryon content id for the content to be used for logging purposes.
in: query
name: content_id
schema:
type: string
- name: Authentication
in: header
required: true
schema:
type: string
example: 'Authorization: Bearer {base64-encoded-token}'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1GetReadPermissionResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: GetReadPermission
tags:
- ConnectorServiceExternal
description: 'Get read permission for a content.
To be implemented by the universal connector and invoked by Pryon Ingestion and Retrieval Platform to pull most to date read permission for a content.
This is called on an interval in the Pryon Ingestion system to update each individual Content item''s specific
permissions in the index.'
/api/connector/v1/connectors/{connector_id}/contents:pull:
servers:
- url: https://api.pryon.net
description: Pryon Cloud
get:
operationId: ConnectorServiceExternal_PullContents
parameters:
- description: Required. The identifer of the connector for the current Pull Contents request.
in: path
name: connector_id
required: true
schema:
type: string
- description: 'Required. The URI to be used for content discovery. The URI''s query parameters can contain information about the content to be discovered such as filters, sorting, etc.
For Pryon Knowledge Platform, this is the KnowledgeDomain''s ContentGroup''s source location.'
in: query
name: seed_source_location
schema:
type: string
- description: The default page size is the maximum page size specified for each Connector.
in: query
name: page_size
schema:
format: int32
type: integer
- description: 'An opaque token that the server can interpret to determine the starting point for the next set of results.
If not given, the server fetches from the first record.
If there are multiple pages, pages 2-N must specify this parameter using the value of next_page_token provided in the previous page''s response.'
in: query
name: page_token
schema:
type: string
- name: Authentication
in: header
required: true
schema:
type: string
example: 'Authorization: Bearer {base64-encoded-token}'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1ListContentsResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: PullContents
tags:
- ConnectorServiceExternal
description: 'Content source discovery custom method.
This is a proxy through the content source.
To be implemented by the universal connector and invoked by Pryon Ingestion Platform to list contents from the connector.
This is where we list all the content available in the remote API.'
/api/connector/v1/connectors/{connector_id}/group-permission/members:
servers:
- url: https://api.pryon.net
description: Pryon Cloud
get:
operationId: ConnectorServiceExternal_ListGroupPermissionMembers
parameters:
- description: Required. The identifier of the connector associated with the group permission member list request.
in: path
name: connector_id
required: true
schema:
type: string
- description: Required. Identifier for the group.
in: query
name: group_id
schema:
type: string
- name: Authentication
in: header
required: true
schema:
type: string
example: 'Authorization: Bearer {base64-encoded-token}'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1ListGroupPermissionMembersResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: ListGroupPermissionMembers
tags:
- ConnectorServiceExternal
description: 'List members of the connector''s group permission.
To be implemented by the universal connector and invoked by Pryon Ingestion Platform to pull most to date members of the connector''s group permission.
The individual memberships related to each Group identified from ListGroupPermissions. This allows specific userIds (or emails) to belong
to particular groups in Pryon given the remote account''s setup.'
/api/connector/v1/connectors/{connector_id}/group-permissions:
servers:
- url: https://api.pryon.net
description: Pryon Cloud
get:
operationId: ConnectorServiceExternal_ListGroupPermissions
parameters:
- description: Required. The identifier of the connector associated with the request.
in: path
name: connector_id
required: true
schema:
type: string
- name: Authentication
in: header
required: true
schema:
type: string
example: 'Authorization: Bearer {base64-encoded-token}'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1ListGroupPermissionsResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: ListGroupPermissions
tags:
- ConnectorServiceExternal
description: 'List group permissions of the connector.
To be implemented by the universal connector and invoked by Pryon Ingestion Platform to pull most to date group permissions of the connector.
This should fetch all the groups in the remote API that any user can belong to. It''s important that these groups
are accessible properties in either our Pryon User records, or in the JWT claims for a particular login.'
/api/connector/v1alpha1/connectors/{connector_id}/content-data:download:
servers:
- url: /
get:
description: Use custom methods to get ContentData to download in multiple parts.
operationId: ConnectorServiceExternal_DownloadContentData
parameters:
- description: Unique identifier for the connector associated with the request.
in: path
name: connector_id
required: true
schema:
type: string
- in: query
name: range_header.range_start
schema:
format: int64
type: string
description: 'Beginning byte range that allows for resuming interrupted downloads and retrieving specific parts of a file; format is range: unit=range-start.'
- in: query
name: range_header.range_end
schema:
format: int64
type: string
description: 'Ending byte range that allows for resuming interrupted downloads and retrieving specific parts of a file; format is range: unit=range-end.'
- in: query
name: range_header.total_size
schema:
format: int64
description: Total range size.
type: string
- description: Hidden string with additional information the PULL API uses to retrieve the content data and source location from the underlying content; for example, drinve_id + item_id in SharePoint.
in: query
name: opaque_data
schema:
type: string
- description: Unique identifier for the content source.
in: query
name: source_location
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1alpha1ContentDataResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: Get Content Information
tags:
- ConnectorServiceExternal
/api/connector/v1alpha1/connectors/{connector_id}/content/metadata:
servers:
- url: /
get:
operationId: ConnectorServiceExternal_GetMetadata
parameters:
- description: Unique identifier of the connector associated with the metadata request.
in: path
name: connector_id
required: true
schema:
type: string
- description: Hidden string with additional information the PULL API uses to retrieve the content data and source location from the underlying content; for example, drinve_id + item_id in SharePoint.
in: query
name: opaque_data
schema:
type: string
- description: Unique identifier for the content source.
in: query
name: source_location
schema:
type: string
- description: Unique identifier for the content.
in: query
name: content_id
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1alpha1GetMetadataResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: Get Content Metadata
tags:
- ConnectorServiceExternal
/api/connector/v1alpha1/connectors/{connector_id}/content/read-permission:
servers:
- url: /
get:
operationId: ConnectorServiceExternal_GetReadPermission
parameters:
- description: Unique identifier for the connector associated with the request.
in: path
name: connector_id
required: true
schema:
type: string
- description: Hidden string with additonal information the PULL API uses to retrieve the content data and source location from the underlying content; for example, drinve_id + item_id in SharePoint.
in: query
name: opaque_data
schema:
type: string
- description: Unique identifier for the content source.
in: query
name: source_location
schema:
type: string
- description: Unique identifier for the content.
in: query
name: content_id
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1alpha1GetReadPermissionResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: Get Read Permission for Content
tags:
- ConnectorServiceExternal
/api/connector/v1alpha1/connectors/{connector_id}/contents:pull:
servers:
- url: /
get:
operationId: ConnectorServiceExternal_PullContents
parameters:
- description: Unique identifier of the connector associated with the request.
in: path
name: connector_id
required: true
schema:
type: string
- description: Unique identifier for the content.
in: query
name: seed_source_location
schema:
type: string
- description: Maximum page size is 100; default is 100.
in: query
name: page_size
schema:
format: int32
type: integer
- description: Hidden token that determines the starting point for the next set of results; if not specified, the server fetches from the first record; if there are multiple pages, specify this value in pages 2-N using the value of next_page_token.
in: query
name: page_token
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1alpha1ListContentsResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: Discover Content Source
tags:
- ConnectorServiceExternal
/api/connector/v1alpha1/connectors/{connector_id}/group-permission/members:
servers:
- url: /
get:
operationId: ConnectorServiceExternal_ListGroupPermissionMembers
parameters:
- description: Unique identifier for the connector associated with the request.
in: path
name: connector_id
required: true
schema:
type: string
- description: Unique identifier for the group.
in: query
name: group_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1alpha1ListGroupPermissionMembersResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: List Connector Group Permissions
tags:
- ConnectorServiceExternal
/api/connector/v1alpha1/connectors/{connector_id}/group-permissions:
servers:
- url: /
get:
operationId: ConnectorServiceExternal_ListGroupPermissions
parameters:
- description: Unique identifier of the connector associated with the request.
in: path
name: connector_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1alpha1ListGroupPermissionsResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/googlerpcStatus'
description: An unexpected error response.
summary: List Connector Group Permissions
tags:
- ConnectorServiceExternal
components:
schemas:
v1alpha1CollectionMetadata:
properties:
uuid:
description: Unique identifier for the interaction returned in the resource response; the response ID.
type: string
response_time_millis:
description: Response time (in milliseconds).
format: int64
type: integer
title: Metadata that will be returned with each collection-level GET
type: object
ContentTaskValue_2:
default: UNSPECIFIED
description: Optional for Proxy connectors.
type: string
v1GroupPermission:
properties:
group_id:
description: Required. A group id.
type: string
group_name:
description: A group name.
type: string
group_email:
description: A group email.
type: string
type: object
ContentTaskValue:
default: UNSPECIFIED
description: Optional for Proxy connectors.
enum:
- UNSPECIFIED
- LOWEST
- LOW
- MEDIUM
- HIGH
- CRITICAL
- IMMEDIATE
- NEW
- IN_PROGRESS
- RESOLVED
- VERIFIED
- CLOSED
- OPEN
- ON_HOLD
- BLOCKED
- CANCELLED
type: string
v1alpha1ListContentItem:
properties:
data:
$ref: '#/components/schemas/v1alpha1Content'
metadata:
$ref: '#/components/schemas/v1alpha1ResourceMetadata'
type: object
v1alpha1ListContentsResponse:
properties:
metadata:
$ref: '#/components/schemas/v1alpha1CollectionMetadata'
items:
description: Array of contents that match the request.
items:
$ref: '#/components/schemas/v1alpha1ListContentItem'
type: array
next_page_token:
description: For multiple pages; must be specified in each request for two pages per sheet.
type: string
type: object
v1ContentStatus:
default: UNKNOWN
description: "The Connector's Content's system status will only be updated by the server.\nDo not set on proxy integrations.\n\n - INITIATED: The content has been identified for processing but has not yet been processed.\nIndicates that the content has been identified and is ready to start the uploading and downloading content data steps.\n - UPLOADING: Indicates that the content is currently being uploaded in parts. This status is useful if you want to track the progress of the upload before all parts are complete.\n - UPLOAD_COMPLETE: Indicates that all parts of the content have been successfully uploaded and the content is ready to be processed.\n - DOWNLOADING: Indicates that the content is currently being downloaded in parts. This status can be used if there's a need to track the progress of the download before all parts are complete.\n - DOWNLOAD_COMPLETE: Indicates that all parts of the content have been successfully downloaded and the content is ready to be processed.\n - PROCESSED: The content has been successfully processed and is ready for ETL and indexing steps.\n - FAILED: There was an error while processing this piece of content. The error could be due to various reasons, such as format issues or communication problems with the source.\n - DELETED: The content has been removed, either because it was deleted from the source and was detected and propagated during the synchronization process."
enum:
- UNKNOWN
- INITIATED
- UPLOADING
- UPLOAD_COMPLETE
- DOWNLOADING
- DOWNLOAD_COMPLETE
- PROCESSED
- FAILED
- DELETED
type: string
googlerpcStatus:
properties:
code:
format: int32
type: integer
message:
type: string
details:
items:
$ref: '#/components/schemas/protobufAny'
type: array
type: object
v1ListContentsResponse:
properties:
metadata:
$ref: '#/components/schemas/v1CollectionMetadata'
items:
description: Array of Contents that match the request.
items:
$ref: '#/components/schemas/v1ListContentItem'
type: array
next_page_token:
description: 'An opaque token that the server can interpret to determine the starting point for the next set of results.
If there are multiple pages, this will be returned and must be specified in each request for pages 2-N using the "page_token" query param.'
type: string
type: object
v1ListGroupPermissionMembersResponse:
properties:
emails:
items:
type: string
type: array
type: object
v1ResourceMetadata:
properties:
uuid:
description: UUID returned in the resource response, which represents the unique interaction with the API, that is, the response id.
type: string
create_time:
description: Time of the initial request.
format: date-time
type: string
update_time:
description: 'Time of the last update.
A value of 0 indicates it has never been updated.'
format: date-time
type: string
response_time_millis:
format: int64
title: Time difference in milliseconds between when the request was received and when the response was generated
type: integer
type: object
v1ReadPermission:
properties:
allow_emails:
description: A list of emails that have read permission for the content.
items:
type: string
type: array
allow_group_ids:
description: 'A list of group ids that have read permission for the content. This will
be different for each remote API. It does not need to follow any preset
pattern, but should be consistent across the particular remote API.'
items:
type: string
type: array
deny_emails:
description: A list of emails that do not have read permission for the content.
items:
type: string
type: array
deny_group_ids:
description: "A list of group ids that have read permission for the content. This will\n // be different for each remote API. It does not need to follow any preset\n // pattern, but should be consistent across the particular remote API."
items:
type: string
type: array
any_required_group_ids:
description: 'A list of group ids where a user needs to a part of AT LEAST ONE of them in order to access the content.
Even if a user exists in one of these groups, ''read'' permission could still be restricted.'
items:
type: string
type: array
all_required_group_ids:
description: 'A list group ids where a user needs to be a part of ALL of them in order to access the object.
Even if a user exists in all of these groups, ''read'' permission could still be restricted.'
items:
type: string
type: array
is_public:
description: A flag to indicate if the content is public.
type: boolean
unrestricted_emails:
description: A list of emails that always have read permission for the content.
items:
type: string
type: array
type: object
v1alpha1ListGroupPermissionMembersResponse:
properties:
emails:
items:
description: List of emails and associated content permissions.
type: string
description: List of emails and associated content permissions.
type: array
type: object
v1CollectionMetadata:
properties:
uuid:
description: Random UUID returned in the resource response to represent the unique interaction with the API. This can be thought of as a response id.
type: string
response_time_millis:
description: Time difference in milliseconds between when the request was received and when the response was generated, that is, the latency.
format: int64
type: integer
title: Metadata that will be returned with each collection-level GET
type: object
v1alpha1ReadPermission:
properties:
allow_emails:
description: List of emails with read permission for the content.
items:
type: string
type: array
allow_group_ids:
description: List of group IDs with read permission for the content.
items:
type: string
type: array
deny_emails:
description: List of emails without read permission for the content.
items:
type: string
type: array
deny_group_ids:
description: List of group IDs without read permission for the content.
items:
type: string
type: array
any_required_group_ids:
description: User must belong to at least one of the listed groups in order to access the content; read permission can still be restricted for users of the group.
items:
type: string
type: array
all_required_group_ids:
description: User must belong to all of the listed groups in order to access the content; read permission can still be restricted for users of the group.
items:
type: string
type: array
is_public:
description: Public content flag.
type: boolean
unrestricted_emails:
description: List of emails that are always allowed read permission for the content.
items:
type: string
type: array
type: object
protobufAny:
properties:
type_url:
type: string
value:
format: byte
pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
type: string
type: object
v1ContentDataResponse:
description: <bytes-data>
properties:
content_range_header:
$ref: '#/components/schemas/v1Range'
bytes_data:
format: byte
pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
type: string
title: 'The response contains the Content-Range header and the content data.
HTTP/1.1 206 Partial Content
Content-Range: bytes <range-start>-<range-end>/<total_size>
Content-Length: <bytes-length>
Content-Type: application/octet-stream'
type: object
v1CustomAttributeType:
default: UNKNOWN
enum:
- UNKNOWN
- STRING
- LONG
- DOUBLE
- DATETIME
- BOOLEAN
type: string
v1alpha1ListGroupPermissionsResponse:
properties:
items:
additionalProperties:
$ref: '#/components/schemas/v1alpha1GroupPermission'
description: Maps group IDs to group permissions.
type: object
type: object
v1alpha1ContentStatus:
default: UNKNOWN
description: "The Connector Content system status is only updated by the server.\nDo not set on proxy integrations.\n\n - INITIATED: The content has been identified for processing but has not yet been processed.\nIndicates that the content has been identified and is ready to start the uploading and downloading content data steps.\n - UPLOADING: Indicates that the content is currently being uploaded in parts. This status is useful if you want to track the progress of the upload before all parts are complete.\n - UPLOAD_COMPLETE: Indicates that all parts of the content have been successfully uploaded and the content is ready to be processed.\n - DOWNLOADING: Indicates that the content is currently being downloaded in parts. This status can be used if there's a need to track the progress of the download before all parts are complete.\n - DOWNLOAD_COMPLETE: Indicates that all parts of the content have been successfully downloaded and the content is ready to be processed.\n - PROCESSED: The content has been successfully processed and is ready for ETL and indexing steps.\n - FAILED: There was an error while processing this piece of content. The error could be due to various reasons, such as format issues or communication problems with the source.\n - DELETED: The content has been removed, either because it was deleted from the source and was detected and propagated during the synchronization process."
type: string
v1ListContentItem:
properties:
data:
$ref: '#/components/schemas/v1Con
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pryon/refs/heads/main/openapi/pryon-connectorserviceexternal-api-openapi.yml