Skip to content

Client library to interact with various APIs used within Philips in a simple and uniform way

License

Notifications You must be signed in to change notification settings

philips-software/go-hsdp-api

Repository files navigation

Maintainability PkgGoDev

go-hsdp-api

A HSDP API client library enabling Go programs to interact with various HSDP APIs in a simple and uniform way

Important

This library is not endorsed, supported or approved by HSDP. It is a Philips Open Source community managed project. Please do not raise SNOW tickets, instead open a issue on the Github project.

Supported APIs

The current implement covers only a subset of HSDP APIs. Basically, we implement functionality as needed.

  • Cartel c.q. Container Host management (examples)
  • Clinical Data Repository (CDR)
    • Tenant Onboarding
    • Subscription management
    • FHIR CRUD
    • FHIR Patch
    • STU3
    • R4
  • Connect IoT
    • Master Data Management (MDM)
      • Propositions
      • Applications
      • Data Adapter
      • Data Subscribers
      • OAuth2 clients
      • Standard Services
      • Service Actions
      • Service References
      • Storage Classes
      • Device Groups
      • Device Types
      • Regions
      • Buckets
      • Data Types
      • Blob Data Contracts
      • Blob Subscriptions
      • Data Broker Subscriptions
      • Firmware Components
      • Firmware Component Versions
      • OAuth Client Scopes
      • Subscriber Types
      • Resources Limits
      • Authentication Methods
    • Data Broker
      • Data Items
      • Subscribers
        • SQS
        • Kinesis
      • Subscriptions
      • Access Details
    • Blob Repository
      • Blob Metadata
      • Access Policy
      • Access URL
      • Multipart Upload
      • BlobStore Policy management
      • Topic management
      • Store Access
      • Bucket management
      • Contract management
      • Subscription management
  • Secure Transport Layer (STL) / Edge
    • Device queries
    • Application Resources management
    • Device configuration management (firewall, logging)
  • Public Key Infrastructure (PKI) management
  • Identity and Access Management (IAM)
    • Groups
    • Organizations
    • Permissions
    • Roles
    • Role Sharing Policies
    • Users
    • Passwords
    • Propositions
    • Applications
    • Services
    • Devices
    • MFA Policies
    • Password Policies
    • Email Templates
    • SMS Gateways
    • SMS Templates
  • Logging (examples)
  • Auditing (examples)
  • Telemetry Data Repository (TDR)
    • Contract management
    • Data Item management
  • S3Creds Policy management
  • DICOM Store
    • Config management
  • Notification service
  • Service Discovery
  • Console settings
    • Metrics Alerts
    • Metrics Autoscalers
  • Docker Registry
    • Service Keys management
    • Namespace management
    • Repository management
  • IronIO tasks, codes and schedules management (examples)
  • Clinical Data Lake (CDL) management
    • Research Studies
    • Data Type Definitions
    • Label Definitions
    • Export Routes
  • AI Inference
    • Compute Environment management
    • Compute Target managements
    • Model management
    • Inference Job management
  • AI Training
    • Compute Environment management
    • Model management
  • AI Workspace
    • Compute Target management
    • Workspace management

Example usage

package main

import (
        "fmt"

        "github.com/philips-software/go-hsdp-api/iam"
)

func main() {
        client, _ := iam.NewClient(nil, &iam.Config{
                Region:         "us-east",
                Environment:    "client-test",
                OAuth2ClientID: "ClientID",
                OAuth2Secret:   "ClientPWD",
        })
        err := client.Login("iam.login@hospital1.com", "Password!@#")
        if err != nil {
                fmt.Printf("Error logging in: %v\n", err)
                return
        }
        introspect, _, _ := client.Introspect()
        if introspect != nil {
                fmt.Printf("Introspect response: %v\n", introspect)
        }
}

TODO

  • Increase API coverage

Issues

Contact / Getting help

Andy Lo-A-Foe (andy.lo-a-foe@philips.com)

License

License is MIT. See LICENSE file