go-hsdp-api
go-hsdp-api copied to clipboard
Client library to interact with various APIs used within Philips in a simple and uniform way
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.
- [x] Cartel c.q. Container Host management (examples)
- [x] Clinical Data Repository (CDR)
- [x] Tenant Onboarding
- [x] Subscription management
- [x] FHIR CRUD
- [x] FHIR Patch
- [x] STU3
- [x] R4
- [x] Connect IoT
- [x] Master Data Management (MDM)
- [x] Propositions
- [x] Applications
- [x] Data Adapter
- [x] Data Subscribers
- [x] OAuth2 clients
- [x] Standard Services
- [x] Service Actions
- [x] Service References
- [x] Storage Classes
- [x] Device Groups
- [x] Device Types
- [x] Regions
- [x] Buckets
- [x] Data Types
- [x] Blob Data Contracts
- [x] Blob Subscriptions
- [x] Data Broker Subscriptions
- [x] Firmware Components
- [x] Firmware Component Versions
- [x] OAuth Client Scopes
- [x] Subscriber Types
- [x] Resources Limits
- [x] Authentication Methods
- [x] Data Broker
- [ ] Data Items
- [x] Subscribers
- [x] SQS
- [ ] Kinesis
- [x] Subscriptions
- [ ] Access Details
- [x] Blob Repository
- [x] Blob Metadata
- [x] Access Policy
- [x] Access URL
- [x] Multipart Upload
- [x] BlobStore Policy management
- [ ] Topic management
- [ ] Store Access
- [ ] Bucket management
- [ ] Contract management
- [ ] Subscription management
- [x] Master Data Management (MDM)
- [x] Secure Transport Layer (STL) / Edge
- [x] Device queries
- [x] Application Resources management
- [x] Device configuration management (firewall, logging)
- [x] Public Key Infrastructure (PKI) management
- [x] Identity and Access Management (IAM)
- [x] Groups
- [x] Organizations
- [x] Permissions
- [x] Roles
- [x] Role Sharing Policies
- [x] Users
- [x] Passwords
- [x] Propositions
- [x] Applications
- [x] Services
- [x] Devices
- [x] MFA Policies
- [x] Password Policies
- [x] Email Templates
- [x] SMS Gateways
- [x] SMS Templates
- [x] Logging (examples)
- [x] Auditing (examples)
- [x] Telemetry Data Repository (TDR)
- [x] Contract management
- [x] Data Item management
- [x] S3Creds Policy management
- [x] DICOM Store
- [x] Config management
- [x] Notification service
- [x] Service Discovery
- [x] Console settings
- [ ] Metrics Alerts
- [x] Metrics Autoscalers
- [x] Docker Registry
- [x] Service Keys management
- [x] Namespace management
- [x] Repository management
- [x] IronIO tasks, codes and schedules management (examples)
- [x] Clinical Data Lake (CDL) management
- [x] Research Studies
- [x] Data Type Definitions
- [x] Label Definitions
- [x] Export Routes
- [x] AI Inference
- [x] Compute Environment management
- [x] Compute Target managements
- [x] Model management
- [x] Inference Job management
- [x] AI Training
- [x] Compute Environment management
- [x] Model management
- [x] AI Workspace
- [x] Compute Target management
- [x] 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("[email protected]", "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
- If you discover an issue: report it on the issue tracker
Contact / Getting help
Andy Lo-A-Foe ([email protected])
License
License is MIT. See LICENSE file