Documentation
¶
Overview ¶
Package cdl provides support for interacting with HSDP Clinical Data Lake services
Index ¶
- Constants
- Variables
- type BundleEntry
- type Client
- func (c *Client) Close()
- func (c *Client) GetCDLStoreURL() string
- func (c *Client) GetCDLURL() string
- func (c *Client) GetEndpointURL() string
- func (c *Client) SetCDLStoreURL(urlStr string) error
- func (c *Client) SetCDLURL(urlStr string) error
- func (c *Client) SetEndpointURL(urlStr string) error
- func (c *Client) TokenRefresh() error
- type Config
- type DataTypeDefinition
- type DatatypeDefinitionService
- func (dtd *DatatypeDefinitionService) CreateDataTypeDefinition(dataTypeDefinition DataTypeDefinition) (*DataTypeDefinition, *Response, error)
- func (dtd *DatatypeDefinitionService) GetDataTypeDefinitionByID(id string) (*DataTypeDefinition, *Response, error)
- func (dtd *DatatypeDefinitionService) GetDataTypeDefinitions(opt *GetOptions, options ...OptionFunc) ([]DataTypeDefinition, *Response, error)
- func (dtd *DatatypeDefinitionService) UpdateDataTypeDefinition(dataTypeDefinition DataTypeDefinition) (*DataTypeDefinition, *Response, error)
- type Destination
- type ExportAllowedField
- type ExportDataObject
- type ExportLabel
- type ExportResearchStudyDestination
- type ExportResearchStudySource
- type ExportRoute
- type ExportRouteBundleEntry
- type ExportRouteBundleResponse
- type ExportRouteService
- func (exp *ExportRouteService) CreateExportRoute(exportRoute ExportRoute) (*ExportRoute, *Response, error)
- func (exp *ExportRouteService) DeleteExportRouteByID(exportRouteId string) (*Response, error)
- func (exp *ExportRouteService) GetExportRouteByID(exportRouteId string) (*ExportRoute, *Response, error)
- func (exp *ExportRouteService) GetExportRoutes(page int, options ...OptionFunc) ([]ExportRoute, *ExportRouteBundleResponse, *Response, error)
- type ExportServiceAccount
- type ExportServiceAccountDetails
- type GetOptions
- type LabelDefBundleResponse
- type LabelDefinition
- type LabelDefinitionService
- func (l *LabelDefinitionService) CreateLabelDefinition(studyId string, labelDef LabelDefinition) (*LabelDefinition, *Response, error)
- func (l *LabelDefinitionService) DeleteLabelDefinitionById(studyId string, labelDefId string) (*Response, error)
- func (l *LabelDefinitionService) GetLabelDefinitionByID(studyId string, labelDefId string) (*LabelDefinition, *Response, error)
- func (l *LabelDefinitionService) GetLabelDefinitions(studyId string, opt *GetOptions, options ...OptionFunc) ([]LabelDefinition, *Response, error)
- type LabelScope
- type LabelsArrayElem
- type LinkElementType
- type OptionFunc
- type Period
- type Response
- type RoleAssignment
- type RoleAssignmentResult
- type RoleRequest
- type Source
- type Study
- type StudyService
- func (s *StudyService) CreateStudy(study Study) (*Study, *Response, error)
- func (s *StudyService) GetAllStudies(options ...OptionFunc) ([]Study, *Response, error)
- func (s *StudyService) GetPermissions(study Study, opt *GetOptions, options ...OptionFunc) (RoleAssignmentResult, *Response, error)
- func (s *StudyService) GetStudies(opt *GetOptions, options ...OptionFunc) ([]Study, *Response, error)
- func (s *StudyService) GetStudyByID(id string) (*Study, *Response, error)
- func (s *StudyService) GetStudyByTitle(title string, options ...OptionFunc) (*Study, *Response, error)
- func (s *StudyService) GrantPermission(study Study, request RoleRequest, options ...OptionFunc) (bool, *Response, error)
- func (s *StudyService) RevokePermission(study Study, request RoleRequest, options ...OptionFunc) (bool, *Response, error)
- func (s *StudyService) UpdateStudy(study Study) (*Study, *Response, error)
Constants ¶
const ( ROLE_STUDYMANAGER = "STUDYMANAGER" ROLE_MONITOR = "MONITOR" ROLE_UPLOADER = "UPLOADER" ROLE_DATA_SCIENTIST = "DATASCIENTIST" ROLE_RESEARCH_MANAGER = "RESEARCHMANAGER" )
const (
APIVersion = "3"
)
Variables ¶
var ( ErrCDLURLCannotBeEmpty = errors.New("base CDL URL cannot be empty") ErrEmptyResult = errors.New("empty result") )
Errors
Functions ¶
This section is empty.
Types ¶
type BundleEntry ¶ added in v0.42.1
type BundleEntry struct {
FullURL string `json:"fullUrl,omitempty"`
Resource LabelDefinition `json:"resource,omitempty"`
}
type Client ¶
type Client struct {
// User agent used when communicating with the HSDP Notification API
UserAgent string
Study *StudyService
DataTypeDefinition *DatatypeDefinitionService
LabelDefinition *LabelDefinitionService
ExportRoute *ExportRouteService
// contains filtered or unexported fields
}
A Client manages communication with HSDP CDL API
func NewClient ¶
NewClient returns a new HSDP CDL API client. A configured IAM client must be provided as the underlying API requires an IAM token
func (*Client) GetCDLStoreURL ¶
GetCDLStoreURL returns the base CDL Store base URL as configured
func (*Client) GetEndpointURL ¶
GetEndpointURL returns the CDL Store URL including the tenant ID
func (*Client) SetCDLStoreURL ¶
SetCDLStoreURL sets the CDL store URL for API requests to a custom endpoint. urlStr should always be specified with a trailing slash.
func (*Client) SetEndpointURL ¶
SetEndpointURL sets the CDL endpoint URL for API requests to a custom endpoint. urlStr should always be specified with a trailing slash.
func (*Client) TokenRefresh ¶
TokenRefresh forces a refresh of the IAM access token
type Config ¶
type Config struct {
Region string
Environment string
OrganizationID string `validate:"required"`
CDLURL string
CDLStore string
DebugLog io.Writer
Retry int
}
Config contains the configuration of a client
type DataTypeDefinition ¶ added in v0.41.2
type DataTypeDefinition struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
JsonSchema json.RawMessage `json:"jsonSchema,omitempty"`
CreatedOn string `json:"createdOn,omitempty"`
CreatedBy string `json:"createdBy,omitempty"`
UpdatedOn string `json:"updatedOn,omitempty"`
UpdatedBy string `json:"updatedBy,omitempty"`
}
type DatatypeDefinitionService ¶ added in v0.41.2
type DatatypeDefinitionService struct {
// contains filtered or unexported fields
}
func (*DatatypeDefinitionService) CreateDataTypeDefinition ¶ added in v0.41.2
func (dtd *DatatypeDefinitionService) CreateDataTypeDefinition(dataTypeDefinition DataTypeDefinition) (*DataTypeDefinition, *Response, error)
func (*DatatypeDefinitionService) GetDataTypeDefinitionByID ¶ added in v0.41.2
func (dtd *DatatypeDefinitionService) GetDataTypeDefinitionByID(id string) (*DataTypeDefinition, *Response, error)
func (*DatatypeDefinitionService) GetDataTypeDefinitions ¶ added in v0.41.2
func (dtd *DatatypeDefinitionService) GetDataTypeDefinitions(opt *GetOptions, options ...OptionFunc) ([]DataTypeDefinition, *Response, error)
func (*DatatypeDefinitionService) UpdateDataTypeDefinition ¶ added in v0.41.2
func (dtd *DatatypeDefinitionService) UpdateDataTypeDefinition(dataTypeDefinition DataTypeDefinition) (*DataTypeDefinition, *Response, error)
type Destination ¶ added in v0.42.3
type Destination struct {
CDLResearchStudy ExportResearchStudyDestination `json:"cdlResearchStudy" validate:"required"`
}
type ExportAllowedField ¶ added in v0.42.3
type ExportAllowedField struct {
DataObject []ExportDataObject `json:"dataObject,omitempty"`
}
type ExportDataObject ¶ added in v0.42.3
type ExportDataObject struct {
Type string `json:"type"`
ExportLabel []ExportLabel `json:"label,omitempty"`
}
type ExportLabel ¶ added in v0.42.3
type ExportResearchStudyDestination ¶ added in v0.42.3
type ExportResearchStudyDestination struct {
Endpoint string `json:"endpoint" validate:"required"`
}
type ExportResearchStudySource ¶ added in v0.42.3
type ExportResearchStudySource struct {
Endpoint string `json:"endpoint" validate:"required"`
Allowed *ExportAllowedField `json:"allowed,omitempty"`
}
type ExportRoute ¶ added in v0.42.3
type ExportRoute struct {
ID string `json:"id,omitempty"`
ExportRouteName string `json:"name" validate:"required"`
Description string `json:"description,omitempty"`
DisplayName string `json:"displayName" validate:"required"`
Source Source `json:"source" validate:"required"`
AutoExport bool `json:"autoExport,omitempty"`
Destination Destination `json:"destination" validate:"required"`
ServiceAccount ExportServiceAccount `json:"serviceAccount" validate:"required"`
CreatedBy string `json:"createdBy,omitempty"`
CreatedOn string `json:"createdOn,omitempty"`
UpdatedBy string `json:"updatedBy,omitempty"`
UpdatedOn string `json:"updatedOn,omitempty"`
}
type ExportRouteBundleEntry ¶ added in v0.42.3
type ExportRouteBundleEntry struct {
FullURL string `json:"fullUrl,omitempty"`
Resource ExportRoute `json:"resource,omitempty"`
}
type ExportRouteBundleResponse ¶ added in v0.42.3
type ExportRouteBundleResponse struct {
ResourceType string `json:"resourceType,omitempty"`
ID string `json:"id,omitempty"`
Type string `json:"type,omitempty"`
Link []LinkElementType `json:"link,omitempty"`
Entry []ExportRouteBundleEntry `json:"entry" validate:"required"`
}
type ExportRouteService ¶ added in v0.42.3
type ExportRouteService struct {
// contains filtered or unexported fields
}
func (*ExportRouteService) CreateExportRoute ¶ added in v0.42.3
func (exp *ExportRouteService) CreateExportRoute(exportRoute ExportRoute) (*ExportRoute, *Response, error)
func (*ExportRouteService) DeleteExportRouteByID ¶ added in v0.42.3
func (exp *ExportRouteService) DeleteExportRouteByID(exportRouteId string) (*Response, error)
func (*ExportRouteService) GetExportRouteByID ¶ added in v0.42.3
func (exp *ExportRouteService) GetExportRouteByID(exportRouteId string) (*ExportRoute, *Response, error)
func (*ExportRouteService) GetExportRoutes ¶ added in v0.42.3
func (exp *ExportRouteService) GetExportRoutes(page int, options ...OptionFunc) ([]ExportRoute, *ExportRouteBundleResponse, *Response, error)
type ExportServiceAccount ¶ added in v0.42.3
type ExportServiceAccount struct {
CDLServiceAccount ExportServiceAccountDetails `json:"cdlServiceAccount" validate:"required"`
}
type ExportServiceAccountDetails ¶ added in v0.42.3
type GetOptions ¶
type GetOptions struct {
Page *int `url:"page,omitempty"`
}
GetOptions describes the fields on which you can search for studies
type LabelDefBundleResponse ¶ added in v0.42.1
type LabelDefBundleResponse struct {
ResourceType string `json:"resourceType,omitempty"`
Id string `json:"id,omitempty"`
Type string `json:"type,omitempty"`
Link json.RawMessage `json:"link,omitempty"`
Entry []BundleEntry `json:"entry" validate:"required"`
}
type LabelDefinition ¶ added in v0.42.1
type LabelDefinition struct {
ID string `json:"id,omitempty"`
LabelDefName string `json:"labelDefName" validate:"labelDefValidationHandler"`
Description string `json:"description,omitempty"`
LabelScope LabelScope `json:"labelScope" validate:"labelDefValidationHandler"`
Label string `json:"label" validate:"required"`
Type string `json:"type" validate:"required"`
Labels []LabelsArrayElem `json:"labels" validate:"labelDefValidationHandler"`
CreatedBy string `json:"createdBy,omitempty"`
CreatedOn string `json:"createdOn,omitempty"`
}
type LabelDefinitionService ¶ added in v0.42.1
type LabelDefinitionService struct {
// contains filtered or unexported fields
}
func (*LabelDefinitionService) CreateLabelDefinition ¶ added in v0.42.1
func (l *LabelDefinitionService) CreateLabelDefinition(studyId string, labelDef LabelDefinition) (*LabelDefinition, *Response, error)
func (*LabelDefinitionService) DeleteLabelDefinitionById ¶ added in v0.42.3
func (l *LabelDefinitionService) DeleteLabelDefinitionById(studyId string, labelDefId string) (*Response, error)
func (*LabelDefinitionService) GetLabelDefinitionByID ¶ added in v0.42.1
func (l *LabelDefinitionService) GetLabelDefinitionByID(studyId string, labelDefId string) (*LabelDefinition, *Response, error)
func (*LabelDefinitionService) GetLabelDefinitions ¶ added in v0.42.1
func (l *LabelDefinitionService) GetLabelDefinitions(studyId string, opt *GetOptions, options ...OptionFunc) ([]LabelDefinition, *Response, error)
type LabelScope ¶ added in v0.42.1
type LabelScope struct {
Type string `json:"type" validate:"required"`
}
type LabelsArrayElem ¶ added in v0.42.1
type LabelsArrayElem struct {
Label string `json:"label" validate:"required"`
}
type LinkElementType ¶ added in v0.42.3
type OptionFunc ¶
OptionFunc is the function signature function for options
type Response ¶
type Response struct {
*http.Response
Link []LinkElementType
}
Response is a HSDP IAM API response. This wraps the standard http.Response returned from HSDP IAM and provides convenient access to things like errors
func (*Response) StatusCode ¶ added in v0.73.0
type RoleAssignment ¶ added in v0.41.1
type RoleAssignmentResult ¶ added in v0.41.1
type RoleAssignmentResult []RoleAssignment
func (RoleAssignmentResult) Roles ¶ added in v0.41.1
func (r RoleAssignmentResult) Roles(userUUID string) []string
type RoleRequest ¶ added in v0.41.1
type RoleRequest struct {
IAMUserUUID string `json:"IAMuserUUID" validate:"required"`
Email string `json:"email" validate:"required"`
Role string `json:"role" validate:"required"`
InstituteID string `json:"instituteID"`
}
func (RoleRequest) Equal ¶ added in v0.41.1
func (r RoleRequest) Equal(other RoleRequest) bool
Equal compares role requests
func (RoleRequest) EqualEnough ¶ added in v0.41.1
func (r RoleRequest) EqualEnough(other RoleRequest) bool
EqualEnough returns true if user and role match up
type Source ¶ added in v0.42.3
type Source struct {
CDLResearchStudy ExportResearchStudySource `json:"cdlResearchStudy" validate:"required"`
}
type Study ¶
type Study struct {
ID string `json:"id,omitempty"`
Title string `json:"title" validate:"required"`
Description string `json:"description,omitempty"`
Organization string `json:"organization,omitempty"`
StudyOwner string `json:"studyOwner" validate:"required"`
Period Period `json:"period" validate:"required"`
DataProtectedFromDeletion bool `json:"dataProtectedFromDeletion,omitempty"`
}
type StudyService ¶
type StudyService struct {
// contains filtered or unexported fields
}
func (*StudyService) CreateStudy ¶
func (s *StudyService) CreateStudy(study Study) (*Study, *Response, error)
func (*StudyService) GetAllStudies ¶ added in v0.46.1
func (s *StudyService) GetAllStudies(options ...OptionFunc) ([]Study, *Response, error)
func (*StudyService) GetPermissions ¶ added in v0.41.1
func (s *StudyService) GetPermissions(study Study, opt *GetOptions, options ...OptionFunc) (RoleAssignmentResult, *Response, error)
func (*StudyService) GetStudies ¶
func (s *StudyService) GetStudies(opt *GetOptions, options ...OptionFunc) ([]Study, *Response, error)
func (*StudyService) GetStudyByID ¶
func (s *StudyService) GetStudyByID(id string) (*Study, *Response, error)
func (*StudyService) GetStudyByTitle ¶ added in v0.46.1
func (s *StudyService) GetStudyByTitle(title string, options ...OptionFunc) (*Study, *Response, error)
func (*StudyService) GrantPermission ¶ added in v0.41.1
func (s *StudyService) GrantPermission(study Study, request RoleRequest, options ...OptionFunc) (bool, *Response, error)
func (*StudyService) RevokePermission ¶ added in v0.41.1
func (s *StudyService) RevokePermission(study Study, request RoleRequest, options ...OptionFunc) (bool, *Response, error)
func (*StudyService) UpdateStudy ¶
func (s *StudyService) UpdateStudy(study Study) (*Study, *Response, error)