Dataset Access Service vv1.0.0

link

Resources

get /staff

Staff List  

List dataset staff in ascending order by ID.

Parameters chevron_right expand_more

ParameterTypeDescription
Query
limitinteger

Number of rows to include in the result

Format: int64

Default value: 1000

offsetinteger

Number of rows to skip from the result

Format: int64

curl -X GET \
  undefined/staff?limit=<value>&offset=<value>

200 OK chevron_right expand_more

StaffList StaffList

application/json

Inherits: object

ParameterTypeDescription
data*array
data[]object

Inherits: object

data[].staffId*integer

Min. value: 1

Format: int64

Inherits: integer

data[].user*object

Inherits: object

data[].user.userId*integer

Min. value: 1

Format: int64

data[].user.firstName*string
data[].user.lastName*string
data[].user.organization*string
data[].user.email*string
data[].isOwner*boolean
rows*integer

Format: int64

offset*integer

Format: int64

total*integer

Format: int64

post /staff

New Staff Entry  

Create a new dataset staff record.

curl -X POST \
  -H "Content-type: application/json"
  -d @body.json \
  undefined/staff

Request Body chevron_right expand_more

NewStaffRequest NewStaffRequest

application/json

Additional properties: Yes

Inherits: object

ParameterTypeDescription
userId*integer

Min. value: 1

Format: int64

isOwner*boolean

200 OK chevron_right expand_more

NewStaffResponse NewStaffResponse

application/json

Inherits: object

ParameterTypeDescription
staffId*integer

Min. value: 1

Format: int64

patch /staff/{staff-id}

Update Staff Entry  

Update dataset staff.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
staff-id* DatastoreIdinteger

Min. value: 1

Format: int64

Inherits: integer

curl -X PATCH \
  -H "Content-type: application/json"
  -d @body.json \
  undefined/staff/{staff-id}

Request Body chevron_right expand_more

application/json

application/json

ParameterTypeDescription
[]object

Inherits: object

[].op*string

Pattern: ^replace$

[].path*string

Pattern: ^/isOwner$

[].value*boolean

204 No Content chevron_right expand_more

delete /staff/{staff-id}

Delete Staff Entry  

Delete dataset staff.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
staff-id* DatastoreIdinteger

Min. value: 1

Format: int64

Inherits: integer

curl -X DELETE \
  undefined/staff/{staff-id}

204 No Content chevron_right expand_more

get /dataset-providers

Provider List  

Get a list of providers for this dataset.

Parameters chevron_right expand_more

ParameterTypeDescription
Query
datasetId*string
limitinteger

Number of rows to include in the result

Format: int64

Default value: 1000

offsetinteger

Number of rows to skip from the result

Format: int64

curl -X GET \
  undefined/dataset-providers?datasetId=<value>&limit=<value>&offset=<value>

200 OK chevron_right expand_more

DatasetProviderList DatasetProviderList

application/json

Inherits: object

ParameterTypeDescription
data*array
data[]object

Inherits: object

data[].providerId*integer

Min. value: 1

Format: int64

Inherits: integer

data[].datasetId*string
data[].user*object

Inherits: object

data[].user.userId*integer

Min. value: 1

Format: int64

data[].user.firstName*string
data[].user.lastName*string
data[].user.organization*string
data[].user.email*string
data[].isManager*boolean
rows*integer

Format: int64

offset*integer

Format: int64

total*integer

Format: int64

post /dataset-providers

New Provider  

Create a new dataset provider record.

curl -X POST \
  -H "Content-type: application/json"
  -d @body.json \
  undefined/dataset-providers

Request Body chevron_right expand_more

DatasetProviderCreateRequest DatasetProviderCreateRequest

application/json

Inherits: object

ParameterTypeDescription
datasetId*string
userIdinteger

Min. value: 1

Format: int64

emailstring
isManager*boolean

200 OK chevron_right expand_more

DatasetProviderCreateResponse DatasetProviderCreateResponse

application/json

Inherits: object

ParameterTypeDescription
created*boolean

Indicates whether a new provider record was created or not.

If this value is false the "providerId" property will not be set. This happens when the request was sent using an email address that is not in our user database. In this case no provider record was created but instead an email was sent to the given address requesting that the user register.

If this value is true the "providerId" property will be set containing the primary key value of the newly created provider record.

providerIdinteger

Min. value: 1

Format: int64

patch /dataset-providers/{provider-id}

Update Provider  

Update a dataset provider record.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
provider-id* DatastoreIdinteger

Dataset provider ID.

Min. value: 1

Format: int64

Inherits: integer

curl -X PATCH \
  -H "Content-type: application/json"
  -d @body.json \
  undefined/dataset-providers/{provider-id}

Request Body chevron_right expand_more

application/json

application/json

ParameterTypeDescription
[]object

Inherits: object

[].op*string

Pattern: ^replace$

[].path*string

Pattern: ^/isManager$

[].value*boolean

204 No Content chevron_right expand_more

delete /dataset-providers/{provider-id}

Delete Provider  

Delete a dataset provider record.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
provider-id* DatastoreIdinteger

Dataset provider ID.

Min. value: 1

Format: int64

Inherits: integer

curl -X DELETE \
  undefined/dataset-providers/{provider-id}

204 No Content chevron_right expand_more

get /dataset-end-users

List End Users  

Get a list of all end-users for the specified dataset.

Parameters chevron_right expand_more

ParameterTypeDescription
Query
datasetId* Dataset IDstring
limit Result Limitinteger

Number of rows to include in the result

Format: int64

Default value: 100

offset Result Offsetinteger

Number of rows to skip from the result

Format: int64

approval ApprovalStatusstring

Filter results by the approval status of the users.

Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

curl -X GET \
  undefined/dataset-end-users?datasetId=<value>&limit=<value>&offset=<value>&ApprovalStatus=<value>

200 OK chevron_right expand_more

EndUserList EndUserList

application/json

Inherits: object

ParameterTypeDescription
data*array
data[]object

Inherits: object

data[].user*object

Inherits: object

data[].user.userId*integer

Min. value: 1

Format: int64

data[].user.firstName*string
data[].user.lastName*string
data[].user.organization*string
data[].user.email*string
data[].datasetId*string
data[].startDatedatetime
data[].durationinteger

Format: int64

data[].restrictionLevel*string
Enum:
  • public
  • prerelease
  • protected
  • controlled
  • private

Inherits: string

data[].purpose*string
data[].researchQuestion*string
data[].analysisPlan*string
data[].disseminationPlan*string
data[].approvalStatus*string
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

data[].denialReasonstring
data[].priorAuth*string
rows*integer

Format: int64

offset*integer

Format: int64

total*integer

Format: int64

post /dataset-end-users

New End User  

Create a new dataset end-user record.

curl -X POST \
  -H "Content-type: application/json"
  -d @body.json \
  undefined/dataset-end-users

Request Body chevron_right expand_more

EndUserCreateRequest EndUserCreateRequest

application/json

New end user request body.

Body MUST contain either userId property or the email property.

If the email property is used, the service will attempt to locate a user account with that email. If one is found, a new record will be created and it's ID returned in the response. If one is not found, an email will be sent to the given address requesting the user create an account and NO NEW RECORD WILL BE CREATED.

Inherits: object

ParameterTypeDescription
userIdinteger

Min. value: 1

Format: int64

emailstring
purpose*string
researchQuestion*string
analysisPlan*string
disseminationPlan*string
priorAuth*string
datasetId*string
startDatedatetime
durationinteger
restrictionLevelstring
Enum:
  • public
  • prerelease
  • protected
  • controlled
  • private

Inherits: string

approvalStatusstring
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

denialReasonstring

200 OK chevron_right expand_more

EndUserCreateResponse EndUserCreateResponse

application/json

End user creation response.

Returns a flag indicating whether or not the record was actually created or not. If created == true then the endUserId property will be present and contain the new end user record's ID. If created == false then the endUserId property will NOT be present, and the successful response indicates that an email was sent to the email address given in the request.

If the creation request used the userId property instead of the email property, a new record will always have been created on a success response.

Inherits: object

ParameterTypeDescription
created*boolean
endUserIdstring

get /dataset-end-users/{end-user-id}

End User Details  

Get the details of an end-user record.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
end-user-id*string

ID of a specific end-user record. This ID consists of the WDK user ID for the user followed by a single dash (-) character followed by the dataset ID. Example: 82-DS_897fe55e6f.

Pattern: ^\d+-\w+$

curl -X GET \
  undefined/dataset-end-users/{end-user-id}

200 OK chevron_right expand_more

EndUser EndUser

application/json

Inherits: object

ParameterTypeDescription
user*object

Inherits: object

user.userId*integer

Min. value: 1

Format: int64

user.firstName*string
user.lastName*string
user.organization*string
user.email*string
datasetId*string
startDatedatetime
durationinteger

Format: int64

restrictionLevel*string
Enum:
  • public
  • prerelease
  • protected
  • controlled
  • private

Inherits: string

purpose*string
researchQuestion*string
analysisPlan*string
disseminationPlan*string
approvalStatus*string
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

denialReasonstring
priorAuth*string

delete /dataset-end-users/{end-user-id}

Delete End User  

Delete an end user access grant.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
end-user-id*string

ID of a specific end-user record. This ID consists of the WDK user ID for the user followed by a single dash (-) character followed by the dataset ID. Example: 82-DS_897fe55e6f.

Pattern: ^\d+-\w+$

curl -X DELETE \
  undefined/dataset-end-users/{end-user-id}

204 No Content chevron_right expand_more

Success

patch /dataset-end-users/{end-user-id}

Update End User  

Update an end user record.

The following rules apply to end user self updates:

  1. The user may only submit updates while their access request is in the "requested" status.
  2. Only the following fields may be updated:
  3. purpose
  4. researchQuestion
  5. analysisPlan
  6. disseminationPlan

This endpoint supports only the listed JSON Patch operations on the listed paths. All other JSON paths or operations will result in a 403 error.

/startDate

  • add
  • remove
  • replace

This field may only be altered by site owners and dataset managers.

/duration

  • add
  • remove
  • replace

This field may only be altered by site owners and dataset managers.

/restrictionLevel

  • replace

This field may only be altered by site owners and dataset managers.

/purpose

  • replace

Type: string

This field may be altered by site owners and dataset managers at any time.

This field may only be altered by end users while their access request is in the "requested" status.

/researchQuestion

  • replace

Type: string

This field may be altered by site owners and dataset managers at any time.

This field may only be altered by end users while their access request is in the "requested" status.

/analysisPlan

  • replace

Type: string

This field may be altered by site owners and dataset managers at any time.

This field may only be altered by end users while their access request is in the "requested" status.

/disseminationPlan

  • replace

Type: string

This field may be altered by site owners and dataset managers at any time.

This field may only be altered by end users while their access request is in the "requested" status.

priorAuth

  • replace

Type: string

This field may be altered by site owners and dataset managers at any time.

This field may only be altered by end users while their access request is in the "requested" status.

/approvalStatus

  • replace

This field may only be altered by site owners and dataset managers.

/denialReason

  • add
  • remove
  • replace

This field may only be altered by site owners and dataset managers.

Parameters chevron_right expand_more

ParameterTypeDescription
Path
end-user-id*string

ID of a specific end-user record. This ID consists of the WDK user ID for the user followed by a single dash (-) character followed by the dataset ID. Example: 82-DS_897fe55e6f.

Pattern: ^\d+-\w+$

curl -X PATCH \
  -H "Content-type: application/json"
  -d @body.json \
  undefined/dataset-end-users/{end-user-id}

Request Body chevron_right expand_more

application/json

application/json

ParameterTypeDescription
[]object

Inherits: object

[].op*string
Enum:
  • add
  • remove
  • replace
[].path*string

Pattern: ^/.+$

[].valueany
[].fromstring

204 No Content chevron_right expand_more

get /permissions

 

200 OK chevron_right expand_more

PermissionsGetResponse PermissionsGetResponse

application/json

Inherits: object

ParameterTypeDescription
isStaffboolean

Indicates whether the current user is listed in the service's staff entries.

isOwnerboolean

Indicates whether the current user is listed in the service's staff entries and is marked as a site owner.

perDatasetobject

If the current user is a provider or an end user of one or more datasets, these datasets will be listed here with the user's permission level for each specific dataset.

If the user is not a provider or end user for any datasets, this field will be omitted.

perDataset.//*object

Inherits: lib.DatasetPermissionEntry

perDataset.//.studyId*string
perDataset.//.sha1Hash*string
perDataset.//.isUserStudy*boolean
perDataset.//.displayName*string
perDataset.//.shortDisplayName*string
perDataset.//.description*string
perDataset.//.type*string
Enum:
  • provider
  • end-user

Inherits: lib.DatasetPermissionLevel

perDataset.//.actionAuthorization*object

Inherits: lib.ActionList

perDataset.//.actionAuthorization.studyMetadata*boolean

study metadata

perDataset.//.actionAuthorization.subsetting*boolean

count, distribution

perDataset.//.actionAuthorization.visualizations*boolean

all viz plugins

perDataset.//.actionAuthorization.resultsFirstPage*boolean

offset:0, numRecords: <=20

perDataset.//.actionAuthorization.resultsAll*boolean

any other tabular response

perDataset.//.isManagerboolean

For providers, this field indicates whether the current user is marked as a manager for the dataset represented by the containing permission entry.

This field will only be present if the containing permission entry type = provider.

perDataset.//.accessRequestStatus*string
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

get /permissions/{study-id}

 

Parameters chevron_right expand_more

ParameterTypeDescription
Path
study-id*string
curl -X GET \
  undefined/permissions/{study-id}

200 OK chevron_right expand_more

StudyPermissionInfo StudyPermissionInfo

application/json

Inherits: object

ParameterTypeDescription
studyId*string
datasetId*string
isUserStudy*boolean
actionAuthorization*object

Inherits: object

actionAuthorization.studyMetadata*boolean

study metadata

actionAuthorization.subsetting*boolean

count, distribution

actionAuthorization.visualizations*boolean

all viz plugins

actionAuthorization.resultsFirstPage*boolean

offset:0, numRecords: <=20

actionAuthorization.resultsAll*boolean

any other tabular response

get /history

 

Parameters chevron_right expand_more

ParameterTypeDescription
Query
limit*integer

Min. value: 1

Max. value: 100

Format: int64

Default value: 100

offset*integer

Format: int64

curl -X GET \
  undefined/history?limit=<value>&offset=<value>

200 OK chevron_right expand_more

HistoryResponse HistoryResponse

application/json

Inherits: object

ParameterTypeDescription
meta*object

Inherits: lib.HistoryMeta

meta.rows*integer

Format: int64

meta.offset*integer

Format: int64

results*array
results[]object

Inherits: lib.HistoryResult

results[].cause*object

Inherits: lib.HistoryCause

results[].cause.user*object

Inherits: lib.HistoryUser

results[].cause.user.userID*integer

Format: int64

results[].cause.user.firstName*string
results[].cause.user.lastName*string
results[].cause.user.email*string
results[].cause.user.organization*string
results[].cause.action*string
Enum:
  • CREATE
  • UPDATE
  • DELETE
results[].cause.timestamp*datetime-only
results[].row*object

Inherits: lib.HistoryRow

results[].row.endUserID*integer

Format: int64

results[].row.user*object

Inherits: lib.HistoryUser

results[].row.user.userID*integer

Format: int64

results[].row.user.firstName*string
results[].row.user.lastName*string
results[].row.user.email*string
results[].row.user.organization*string
results[].row.datasetPresenterID*string
results[].row.restrictionLevel*string
Enum:
  • PUBLIC
  • PRERELEASE
  • PROTECTED
  • CONTROLLED
  • PRIVATE
results[].row.approvalStatus*string
Enum:
  • APPROVED
  • REQUESTED
  • DENIED
results[].row.startDate*datetime-only
results[].row.duration*integer

Format: int64

results[].row.purpose*string
results[].row.researchQuestion*string
results[].row.analysisPlan*string
results[].row.priorAuth*string
results[].row.denialReason*string
results[].row.dateDenied*datetime-only
results[].row.allowSelfEdits*boolean

get /api

 

Renders the API documentation for this service.

curl -X GET \
  undefined/api

200 OK chevron_right expand_more

text/html

text/html

get /health

 

Prints information about the overall service health.

curl -X GET \
  undefined/health

200 OK chevron_right expand_more

HealthResponse HealthResponse

application/json

Health details about the service

Inherits: object

ParameterTypeDescription
status*string

Status describes the overall service state. A status of "healthy" indicates that everything is running smoothly and all service dependencies are reachable and online. A status of "unhealthy" indicates that something is wrong with either this service or one or more of it's dependency services.

Enum:
  • healthy
  • unhealthy
dependencies*array

A list of external services that this service depends on and some details about them.

dependencies[]object

Inherits: DependencyStatus

dependencies[].name*string

Name of the external depdendency.

dependencies[].reachable*boolean

Whether or not the external service is reachable.

dependencies[].online*string

Whether or not the external service is online and available for requests.

Enum:
  • yes
  • unknown
  • no
info*object

Additional properties: Yes

info.threads*integer

Min. value: 1

info.uptime*string
info.uptimeMillis*integer

Min. value: 1

Format: int64

500 Internal Server Error chevron_right expand_more

Internal Server Error ServerError

application/json

Discriminator: status

Discriminator value: server-error

Inherits: error.Error

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string
requestId*string

Response Body

{
  "status": "server-error",
  "message": "Datastore connection lost",
  "requestId": "b296c3d9-4032-41b1-906e-c97ccfc447e3"
}

get /metrics

 

Prometheus metrics for the service.

curl -X GET \
  undefined/metrics

200 OK chevron_right expand_more

text/plain

text/plain

Security Schemes

Security Scheme header-auth

header-auth

Authentication based on a WDK auth cookie.

Headers chevron_right expand_more

ParameterTypeDescription
Auth_Key*string

Authorization header.

curl -X <method> \
  -H "Auth_Key: <value>" \
  /<path>

Types

Type DatastoreId (integer)

DatastoreId

Min. value: 1

Format: int64

Inherits: integer

Type UserDetails (object)

UserDetails

Inherits: object

Model

ParameterTypeDescription
userId*integer

Min. value: 1

Format: int64

firstName*string
lastName*string
organization*string
email*string

Type RestrictionLevel (string)

RestrictionLevel
Enum:
  • public
  • prerelease
  • protected
  • controlled
  • private

Inherits: string

Type ApprovalStatus (string)

ApprovalStatus
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

Type EndUser (object)

EndUser

Inherits: object

Model

ParameterTypeDescription
user*object

Inherits: object

user.userId*integer

Min. value: 1

Format: int64

user.firstName*string
user.lastName*string
user.organization*string
user.email*string
datasetId*string
startDatedatetime
durationinteger

Format: int64

restrictionLevel*string
Enum:
  • public
  • prerelease
  • protected
  • controlled
  • private

Inherits: string

purpose*string
researchQuestion*string
analysisPlan*string
disseminationPlan*string
approvalStatus*string
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

denialReasonstring
priorAuth*string

Type EndUserCreateRequest (object)

EndUserCreateRequest

New end user request body.

Body MUST contain either userId property or the email property.

If the email property is used, the service will attempt to locate a user account with that email. If one is found, a new record will be created and it's ID returned in the response. If one is not found, an email will be sent to the given address requesting the user create an account and NO NEW RECORD WILL BE CREATED.

Inherits: object

Model

ParameterTypeDescription
userIdinteger

Min. value: 1

Format: int64

emailstring
purpose*string
researchQuestion*string
analysisPlan*string
disseminationPlan*string
priorAuth*string
datasetId*string
startDatedatetime
durationinteger
restrictionLevelstring
Enum:
  • public
  • prerelease
  • protected
  • controlled
  • private

Inherits: string

approvalStatusstring
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

denialReasonstring

Type EndUserCreateResponse (object)

EndUserCreateResponse

End user creation response.

Returns a flag indicating whether or not the record was actually created or not. If created == true then the endUserId property will be present and contain the new end user record's ID. If created == false then the endUserId property will NOT be present, and the successful response indicates that an email was sent to the email address given in the request.

If the creation request used the userId property instead of the email property, a new record will always have been created on a success response.

Inherits: object

Model

ParameterTypeDescription
created*boolean
endUserIdstring

Type EndUserList (object)

EndUserList

Inherits: object

Model

ParameterTypeDescription
data*array
data[]object

Inherits: object

data[].user*object

Inherits: object

data[].user.userId*integer

Min. value: 1

Format: int64

data[].user.firstName*string
data[].user.lastName*string
data[].user.organization*string
data[].user.email*string
data[].datasetId*string
data[].startDatedatetime
data[].durationinteger

Format: int64

data[].restrictionLevel*string
Enum:
  • public
  • prerelease
  • protected
  • controlled
  • private

Inherits: string

data[].purpose*string
data[].researchQuestion*string
data[].analysisPlan*string
data[].disseminationPlan*string
data[].approvalStatus*string
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

data[].denialReasonstring
data[].priorAuth*string
rows*integer

Format: int64

offset*integer

Format: int64

total*integer

Format: int64

Type EndUserPatch (object)

EndUserPatch

Inherits: object

Model

ParameterTypeDescription
op*string
Enum:
  • add
  • remove
  • replace
path*string

Pattern: ^/.+$

valueany
fromstring

Type DatasetProvider (object)

DatasetProvider

Inherits: object

Model

ParameterTypeDescription
providerId*integer

Min. value: 1

Format: int64

Inherits: integer

datasetId*string
user*object

Inherits: object

user.userId*integer

Min. value: 1

Format: int64

user.firstName*string
user.lastName*string
user.organization*string
user.email*string
isManager*boolean

Type DatasetProviderList (object)

DatasetProviderList

Inherits: object

Model

ParameterTypeDescription
data*array
data[]object

Inherits: object

data[].providerId*integer

Min. value: 1

Format: int64

Inherits: integer

data[].datasetId*string
data[].user*object

Inherits: object

data[].user.userId*integer

Min. value: 1

Format: int64

data[].user.firstName*string
data[].user.lastName*string
data[].user.organization*string
data[].user.email*string
data[].isManager*boolean
rows*integer

Format: int64

offset*integer

Format: int64

total*integer

Format: int64

Type DatasetProviderCreateRequest (object)

DatasetProviderCreateRequest

Inherits: object

Model

ParameterTypeDescription
datasetId*string
userIdinteger

Min. value: 1

Format: int64

emailstring
isManager*boolean

Type DatasetProviderCreateResponse (object)

DatasetProviderCreateResponse

Inherits: object

Model

ParameterTypeDescription
created*boolean

Indicates whether a new provider record was created or not.

If this value is false the "providerId" property will not be set. This happens when the request was sent using an email address that is not in our user database. In this case no provider record was created but instead an email was sent to the given address requesting that the user register.

If this value is true the "providerId" property will be set containing the primary key value of the newly created provider record.

providerIdinteger

Min. value: 1

Format: int64

Type DatasetProviderPatch (object)

DatasetProviderPatch

Inherits: object

Model

ParameterTypeDescription
op*string

Pattern: ^replace$

path*string

Pattern: ^/isManager$

value*boolean

Type HistoryResponse (object)

HistoryResponse

Inherits: object

Model

ParameterTypeDescription
meta*object

Inherits: lib.HistoryMeta

meta.rows*integer

Format: int64

meta.offset*integer

Format: int64

results*array
results[]object

Inherits: lib.HistoryResult

results[].cause*object

Inherits: lib.HistoryCause

results[].cause.user*object

Inherits: lib.HistoryUser

results[].cause.user.userID*integer

Format: int64

results[].cause.user.firstName*string
results[].cause.user.lastName*string
results[].cause.user.email*string
results[].cause.user.organization*string
results[].cause.action*string
Enum:
  • CREATE
  • UPDATE
  • DELETE
results[].cause.timestamp*datetime-only
results[].row*object

Inherits: lib.HistoryRow

results[].row.endUserID*integer

Format: int64

results[].row.user*object

Inherits: lib.HistoryUser

results[].row.user.userID*integer

Format: int64

results[].row.user.firstName*string
results[].row.user.lastName*string
results[].row.user.email*string
results[].row.user.organization*string
results[].row.datasetPresenterID*string
results[].row.restrictionLevel*string
Enum:
  • PUBLIC
  • PRERELEASE
  • PROTECTED
  • CONTROLLED
  • PRIVATE
results[].row.approvalStatus*string
Enum:
  • APPROVED
  • REQUESTED
  • DENIED
results[].row.startDate*datetime-only
results[].row.duration*integer

Format: int64

results[].row.purpose*string
results[].row.researchQuestion*string
results[].row.analysisPlan*string
results[].row.priorAuth*string
results[].row.denialReason*string
results[].row.dateDenied*datetime-only
results[].row.allowSelfEdits*boolean

Type HistoryMeta (object)

HistoryMeta

Inherits: object

Model

ParameterTypeDescription
rows*integer

Format: int64

offset*integer

Format: int64

Type HistoryResult (object)

HistoryResult

Inherits: object

Model

ParameterTypeDescription
cause*object

Inherits: lib.HistoryCause

cause.user*object

Inherits: lib.HistoryUser

cause.user.userID*integer

Format: int64

cause.user.firstName*string
cause.user.lastName*string
cause.user.email*string
cause.user.organization*string
cause.action*string
Enum:
  • CREATE
  • UPDATE
  • DELETE
cause.timestamp*datetime-only
row*object

Inherits: lib.HistoryRow

row.endUserID*integer

Format: int64

row.user*object

Inherits: lib.HistoryUser

row.user.userID*integer

Format: int64

row.user.firstName*string
row.user.lastName*string
row.user.email*string
row.user.organization*string
row.datasetPresenterID*string
row.restrictionLevel*string
Enum:
  • PUBLIC
  • PRERELEASE
  • PROTECTED
  • CONTROLLED
  • PRIVATE
row.approvalStatus*string
Enum:
  • APPROVED
  • REQUESTED
  • DENIED
row.startDate*datetime-only
row.duration*integer

Format: int64

row.purpose*string
row.researchQuestion*string
row.analysisPlan*string
row.priorAuth*string
row.denialReason*string
row.dateDenied*datetime-only
row.allowSelfEdits*boolean

Type HistoryCause (object)

HistoryCause

Inherits: object

Model

ParameterTypeDescription
user*object

Inherits: lib.HistoryUser

user.userID*integer

Format: int64

user.firstName*string
user.lastName*string
user.email*string
user.organization*string
action*string
Enum:
  • CREATE
  • UPDATE
  • DELETE
timestamp*datetime-only

Type HistoryUser (object)

HistoryUser

Inherits: object

Model

ParameterTypeDescription
userID*integer

Format: int64

firstName*string
lastName*string
email*string
organization*string

Type HistoryRow (object)

HistoryRow

Inherits: object

Model

ParameterTypeDescription
endUserID*integer

Format: int64

user*object

Inherits: object

user.userID*integer

Format: int64

user.firstName*string
user.lastName*string
user.email*string
user.organization*string
datasetPresenterID*string
restrictionLevel*string
Enum:
  • PUBLIC
  • PRERELEASE
  • PROTECTED
  • CONTROLLED
  • PRIVATE
approvalStatus*string
Enum:
  • APPROVED
  • REQUESTED
  • DENIED
startDate*datetime-only
duration*integer

Format: int64

purpose*string
researchQuestion*string
analysisPlan*string
priorAuth*string
denialReason*string
dateDenied*datetime-only
allowSelfEdits*boolean

Type PermissionsGetResponse (object)

PermissionsGetResponse

Inherits: object

Model

ParameterTypeDescription
isStaffboolean

Indicates whether the current user is listed in the service's staff entries.

isOwnerboolean

Indicates whether the current user is listed in the service's staff entries and is marked as a site owner.

perDatasetobject

If the current user is a provider or an end user of one or more datasets, these datasets will be listed here with the user's permission level for each specific dataset.

If the user is not a provider or end user for any datasets, this field will be omitted.

perDataset.//*object

Inherits: lib.DatasetPermissionEntry

perDataset.//.studyId*string
perDataset.//.sha1Hash*string
perDataset.//.isUserStudy*boolean
perDataset.//.displayName*string
perDataset.//.shortDisplayName*string
perDataset.//.description*string
perDataset.//.type*string
Enum:
  • provider
  • end-user

Inherits: lib.DatasetPermissionLevel

perDataset.//.actionAuthorization*object

Inherits: lib.ActionList

perDataset.//.actionAuthorization.studyMetadata*boolean

study metadata

perDataset.//.actionAuthorization.subsetting*boolean

count, distribution

perDataset.//.actionAuthorization.visualizations*boolean

all viz plugins

perDataset.//.actionAuthorization.resultsFirstPage*boolean

offset:0, numRecords: <=20

perDataset.//.actionAuthorization.resultsAll*boolean

any other tabular response

perDataset.//.isManagerboolean

For providers, this field indicates whether the current user is marked as a manager for the dataset represented by the containing permission entry.

This field will only be present if the containing permission entry type = provider.

perDataset.//.accessRequestStatus*string
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

Type ActionList (object)

ActionList

Inherits: object

Model

ParameterTypeDescription
studyMetadata*boolean

study metadata

subsetting*boolean

count, distribution

visualizations*boolean

all viz plugins

resultsFirstPage*boolean

offset:0, numRecords: <=20

resultsAll*boolean

any other tabular response

Type StudyPermissionInfo (object)

StudyPermissionInfo

Inherits: object

Model

ParameterTypeDescription
studyId*string
datasetId*string
isUserStudy*boolean
actionAuthorization*object

Inherits: object

actionAuthorization.studyMetadata*boolean

study metadata

actionAuthorization.subsetting*boolean

count, distribution

actionAuthorization.visualizations*boolean

all viz plugins

actionAuthorization.resultsFirstPage*boolean

offset:0, numRecords: <=20

actionAuthorization.resultsAll*boolean

any other tabular response

Type DatasetPermissionEntry (object)

DatasetPermissionEntry

Inherits: object

Model

ParameterTypeDescription
studyId*string
sha1Hash*string
isUserStudy*boolean
displayName*string
shortDisplayName*string
description*string
type*string
Enum:
  • provider
  • end-user

Inherits: lib.DatasetPermissionLevel

actionAuthorization*object

Inherits: object

actionAuthorization.studyMetadata*boolean

study metadata

actionAuthorization.subsetting*boolean

count, distribution

actionAuthorization.visualizations*boolean

all viz plugins

actionAuthorization.resultsFirstPage*boolean

offset:0, numRecords: <=20

actionAuthorization.resultsAll*boolean

any other tabular response

isManagerboolean

For providers, this field indicates whether the current user is marked as a manager for the dataset represented by the containing permission entry.

This field will only be present if the containing permission entry type = provider.

accessRequestStatus*string
Enum:
  • unrequested
  • approved
  • requested
  • denied

Inherits: string

Type DatasetPermissionLevel (string)

DatasetPermissionLevel
Enum:
  • provider
  • end-user

Inherits: string

Type Staff (object)

Staff

Inherits: object

Model

ParameterTypeDescription
staffId*integer

Min. value: 1

Format: int64

Inherits: integer

user*object

Inherits: object

user.userId*integer

Min. value: 1

Format: int64

user.firstName*string
user.lastName*string
user.organization*string
user.email*string
isOwner*boolean

Type StaffList (object)

StaffList

Inherits: object

Model

ParameterTypeDescription
data*array
data[]object

Inherits: object

data[].staffId*integer

Min. value: 1

Format: int64

Inherits: integer

data[].user*object

Inherits: object

data[].user.userId*integer

Min. value: 1

Format: int64

data[].user.firstName*string
data[].user.lastName*string
data[].user.organization*string
data[].user.email*string
data[].isOwner*boolean
rows*integer

Format: int64

offset*integer

Format: int64

total*integer

Format: int64

Type NewStaffRequest (object)

NewStaffRequest

Additional properties: Yes

Inherits: object

Model

ParameterTypeDescription
userId*integer

Min. value: 1

Format: int64

isOwner*boolean

Type NewStaffResponse (object)

NewStaffResponse

Inherits: object

Model

ParameterTypeDescription
staffId*integer

Min. value: 1

Format: int64

Type StaffPatch (object)

StaffPatch

Inherits: object

Model

ParameterTypeDescription
op*string

Pattern: ^replace$

path*string

Pattern: ^/isOwner$

value*boolean

Type Error (object)

Error

Discriminator: status

Inherits: object

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string

Type ErrorType (string)

ErrorType
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: string

Type BadRequestError (object)

Bad Request

Request could not be parsed or was otherwise unusable.

Discriminator: status

Discriminator value: bad-request

Inherits: error.Error

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string

Examples

{
  "status": "bad-request",
  "message": "malformed JSON"
}

Type UnauthorizedError (object)

Unauthorized

Unauthenticated client requested a resource that requires authentication.

Discriminator: status

Discriminator value: unauthorized

Inherits: error.Error

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string

Examples

{
  "status": "unauthorized",
  "message": "users must be logged in to access this resource"
}

Type ForbiddenError (object)

Forbidden

Server understood the request but is refusing it.

Could be caused by incorrect instructions or an authenticated client requesting a resource or action that requires permissions that the client does not have assigned.

Discriminator: status

Discriminator value: forbidden

Inherits: error.Error

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string

Examples

{
  "status": "forbidden",
  "message": "the current user is not permitted to perform this action"
}

Type NotFoundError (object)

Not Found

The requested resource was not found on this server.

Discriminator: status

Discriminator value: not-found

Inherits: error.Error

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string

Examples

{
  "status": "not-found",
  "message": "the requested resource could not be found"
}

Type MethodNotAllowedError (object)

Method Not Allowed

The HTTP method used to request a resource is not allowed or configured by the server.

Discriminator: status

Discriminator value: bad-method

Inherits: error.Error

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string

Examples

{
  "status": "bad-method",
  "message": "PUT requests are not permitted on this endpoint"
}

Type UnprocessableEntityError (object)

Unprocessable Entity

The request payload or parameters are correctly structured but fail resource specific validation.

Discriminator: status

Discriminator value: invalid-input

Inherits: error.Error

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string
errors*object

Additional properties: Yes

errors.general*array

Non-field specific errors.

errors.general[]string
errors.byKey*object

Field specific errors

Additional properties: Yes

errors.byKey.//*array
errors.byKey.//[]string

Examples

{
  "status": "invalid-input",
  "message": "JSON validation failed",
  "errors": {
    "general": [],
    "byKey": {
      "id": [
        "Given ID value does not point to an existing record."
      ]
    }
  }
}

Type ServerError (object)

Internal Server Error

Discriminator: status

Discriminator value: server-error

Inherits: error.Error

Model

ParameterTypeDescription
status*string
Enum:
  • bad-request
  • unauthorized
  • forbidden
  • not-found
  • bad-method
  • invalid-input
  • server-error

Inherits: error.ErrorType

message*string
requestId*string

Examples

{
  "status": "server-error",
  "message": "Datastore connection lost",
  "requestId": "b296c3d9-4032-41b1-906e-c97ccfc447e3"
}

Type HealthResponse (object)

HealthResponse

Health details about the service

Inherits: object

Model

ParameterTypeDescription
status*string

Status describes the overall service state. A status of "healthy" indicates that everything is running smoothly and all service dependencies are reachable and online. A status of "unhealthy" indicates that something is wrong with either this service or one or more of it's dependency services.

Enum:
  • healthy
  • unhealthy
dependencies*array

A list of external services that this service depends on and some details about them.

dependencies[]object

Inherits: DependencyStatus

dependencies[].name*string

Name of the external depdendency.

dependencies[].reachable*boolean

Whether or not the external service is reachable.

dependencies[].online*string

Whether or not the external service is online and available for requests.

Enum:
  • yes
  • unknown
  • no
info*object

Additional properties: Yes

info.threads*integer

Min. value: 1

info.uptime*string
info.uptimeMillis*integer

Min. value: 1

Format: int64

Type DependencyStatus (object)

DependencyStatus

Inherits: object

Model

ParameterTypeDescription
name*string

Name of the external depdendency.

reachable*boolean

Whether or not the external service is reachable.

online*string

Whether or not the external service is online and available for requests.

Enum:
  • yes
  • unknown
  • no