Skip to content

SaladTechnologies/salad-cloud-sdk-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SaladCloudSdk Go SDK 0.9.0-alpha.5

Welcome to the SaladCloudSdk SDK documentation. This guide will help you get started with integrating and using the SaladCloudSdk SDK in your project.

Versions

  • API version: 0.9.0-alpha.5
  • SDK version: 0.9.0-alpha.5

About the API

The SaladCloud REST API. Please refer to the SaladCloud API Documentation for more details.

Table of Contents

Setup & Configuration

Supported Language Versions

This SDK is compatible with the following versions: Go >= 1.19.0

Authentication

API Key Authentication

The salad-cloud-sdk API uses API keys as a form of authentication. An API key is a unique identifier used to authenticate a user, developer, or a program that is calling the API.

Setting the API key

When you initialize the SDK, you can set the API key as follows:

import (
    "github.com/saladtechnologies/salad-cloud-sdk-go/pkg/saladcloudsdk"
    "github.com/saladtechnologies/salad-cloud-sdk-go/pkg/saladcloudsdkconfig"
  )

config := saladcloudsdkconfig.NewConfig()
config.SetApiKey("YOUR-TOKEN")

sdk := saladcloudsdk.NewSaladCloudSdk(config)

If you need to set or update the API key after initializing the SDK, you can use:

import (
    "github.com/saladtechnologies/salad-cloud-sdk-go/pkg/saladcloudsdk"
    "github.com/saladtechnologies/salad-cloud-sdk-go/pkg/saladcloudsdkconfig"
  )

config := saladcloudsdkconfig.NewConfig()

sdk := saladcloudsdk.NewSaladCloudSdk(config)
sdk.SetApiKey("YOUR-TOKEN")

Services

The SDK provides various services to interact with the API.

Below is a list of all available services with links to their detailed documentation:
Name
ContainerGroupsService
WorkloadErrorsService
QueuesService
QuotasService
InferenceEndpointsService
OrganizationDataService
WebhookSecretKeyService

Response Wrappers

All services use response wrappers to provide a consistent interface to return the responses from the API.

The response wrapper itself is a generic struct that contains the response data and metadata.

Below are the response wrappers used in the SDK:

SaladCloudSdkResponse[T]

This response wrapper is used to return the response data from the API. It contains the following fields:

Name Type Description
Data T The body of the API response
Metadata SaladCloudSdkResponseMetadata Status code and headers returned by the API

SaladCloudSdkError

This response wrapper is used to return an error. It contains the following fields:

Name Type Description
Err error The error that occurred
Body T The body of the API response
Metadata SaladCloudSdkResponseMetadata Status code and headers returned by the API

SaladCloudSdkResponseMetadata

This struct is shared by both response wrappers and contains the following fields:

Name Type Description
Headers map[string]string A map containing the headers returned by the API
StatusCode int The status code returned by the API

Models

The SDK includes several models that represent the data structures used in API requests and responses. These models help in organizing and managing the data efficiently.

Below is a list of all available models with links to their detailed documentation:
Name Description
ContainerGroupList Represents a list of container groups
CreateContainerGroup Represents a request to create a container group
ContainerGroup Represents a container group
UpdateContainerGroup Represents a request to update a container group
ContainerGroupInstances Represents a list of container group instances
ContainerGroupInstance Represents the details of a single container group instance
WorkloadErrorList Represents a list of workload errors
QueueList Represents a list of queues
CreateQueue Represents a request to create a new queue.
Queue Represents a queue.
UpdateQueue Represents a request to update an existing queue.
QueueJobList Represents a list of queue jobs
CreateQueueJob Represents a request to create a queue job
QueueJob Represents a queue job
Quotas Represents the organization quotas
InferenceEndpointsList Represents a list of inference endpoints
InferenceEndpoint Represents an inference endpoint
InferenceEndpointJobList Represents a list of inference endpoint jobs
CreateInferenceEndpointJob Represents a request to create a inference endpoint job
InferenceEndpointJob Represents a inference endpoint job
GpuClassesList Represents a list of GPU classes
WebhookSecretKey Represents a webhook secret key
Container Represents a container
ContainerRestartPolicy
ContainerGroupState Represents a container group state
CountryCode
ContainerGroupNetworking Represents container group networking parameters
ContainerGroupLivenessProbe Represents the container group liveness probe
ContainerGroupReadinessProbe Represents the container group readiness probe
ContainerGroupStartupProbe Represents the container group startup probe
ContainerGroupQueueConnection Represents container group queue connection
QueueAutoscaler Represents the autoscaling rules for a queue
ContainerResourceRequirements Represents a container resource requirements
ContainerGroupPriority
ContainerGroupStatus
ContainerGroupInstanceStatusCount Represents a container group instance status count
ContainerNetworkingProtocol
ContainerGroupProbeTcp
ContainerGroupProbeHttp
ContainerGroupProbeGrpc
ContainerGroupProbeExec
ContainerProbeHttpScheme
ContainerGroupProbeHttpHeaders2
CreateContainer Represents a container
CreateContainerGroupNetworking Represents container group networking parameters
UpdateContainer Represents an update container object
UpdateContainerGroupNetworking Represents update container group networking parameters
WorkloadError Represents a workload error
QueueJobEvent Represents an event for queue job
ContainerGroupsQuotas
InferenceEndpointJobEvent Represents an event for inference endpoint job
GpuClass Represents a GPU Class
GpuClassPrice Represents the price of a GPU class for a given container group priority

License

This SDK is licensed under the MIT License.

See the LICENSE file for more details.