Skip to content

SaladTechnologies/salad-cloud-sdk-java

Repository files navigation

SaladCloudSdk Java SDK 0.9.0-alpha.6

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.6

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: Java >= 1.8

Installation

If you use Maven, place the following within the dependency tag in your pom.xml file:

<dependency>
    <groupId>com.salad.cloud</groupId>
    <artifactId>sdk</artifactId>
    <version>0.9.0-alpha.6</version>
</dependency>

If you use Gradle, paste the next line inside the dependencies block of your build.gradle file:

implementation group: com.salad.cloud, name: sdk, version: 0.9.0-alpha.6

If you use JAR files, package the SDK by running the following command:

mvn compile assembly:single

Then, add the JAR file to your project's classpath.

Authentication

API Key Authentication

The SaladCloudSdk 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 com.salad.cloud.sdk.SaladCloudSdk;
import com.salad.cloud.sdk.config.ApiKeyAuthConfig;
import com.salad.cloud.sdk.config.SaladCloudSdkConfig;

public class Main {

  public static void main(String[] args) {
    ApiKeyAuthConfig apiKeyAuthConfig = ApiKeyAuthConfig
      .builder()
      .apiKey("YOUR_API_KEY")
      .apiKeyHeader("YOUR_API_KEY_HEADER")
      .build();

    SaladCloudSdkConfig config = SaladCloudSdkConfig.builder().apiKeyAuthConfig(apiKeyAuthConfig).build();

    SaladCloudSdk saladCloudSdk = new SaladCloudSdk(config);
  }
}

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

saladCloudSdk.setApiKey('YOUR_API_KEY');
saladCloudSdk.setApiKeyHeader('YOUR_API_KEY_HEADER');

Setting a Custom Timeout

You can set a custom timeout for the SDK's HTTP requests as follows:

import com.salad.cloud.sdk.SaladCloudSdk;
import com.salad.cloud.sdk.config.SaladCloudSdkConfig;

public class Main {

  public static void main(String[] args) {
    SaladCloudSdkConfig config = SaladCloudSdkConfig.builder().timeout(10000).build();
    SaladCloudSdk saladCloudSdk = new SaladCloudSdk(config);
  }
}

Sample Usage

Below is a comprehensive example demonstrating how to authenticate and call a simple endpoint:

import com.salad.cloud.sdk.SaladCloudSdk;
import com.salad.cloud.sdk.config.ApiKeyAuthConfig;
import com.salad.cloud.sdk.config.SaladCloudSdkConfig;
import com.salad.cloud.sdk.models.Quotas;

public class Main {

  public static void main(String[] args) {
    SaladCloudSdkConfig config = SaladCloudSdkConfig
      .builder()
      .apiKeyAuthConfig(ApiKeyAuthConfig.builder().apiKey("YOUR_API_KEY").build())
      .build();

    SaladCloudSdk saladCloudSdk = new SaladCloudSdk(config);

    Quotas response = saladCloudSdk.quotasService.getQuotas("oecson4k2eclxr");

    System.out.println(response);
  }
}

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

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
ListQueueJobsParameters
ListInferenceEndpointsParameters
GetInferenceEndpointJobsParameters

License

This SDK is licensed under the MIT License.

See the LICENSE file for more details.