AzureOptions.java

/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *--------------------------------------------------------------------------------------------*/

package com.github.copilot.sdk.json;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Azure OpenAI-specific configuration options.
 * <p>
 * When using a BYOK (Bring Your Own Key) setup with Azure OpenAI, this class
 * allows you to specify Azure-specific settings such as the API version to use.
 *
 * <h2>Example Usage</h2>
 *
 * <pre>{@code
 * var provider = new ProviderConfig().setType("azure-openai").setHost("your-resource.openai.azure.com")
 * 		.setApiKey("your-api-key").setAzure(new AzureOptions().setApiVersion("2024-02-01"));
 * }</pre>
 *
 * @see ProviderConfig#setAzure(AzureOptions)
 * @since 1.0.0
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AzureOptions {

    @JsonProperty("apiVersion")
    private String apiVersion;

    /**
     * Gets the Azure OpenAI API version.
     *
     * @return the API version string
     */
    public String getApiVersion() {
        return apiVersion;
    }

    /**
     * Sets the Azure OpenAI API version to use.
     * <p>
     * Examples: {@code "2024-02-01"}, {@code "2023-12-01-preview"}
     *
     * @param apiVersion
     *            the API version string
     * @return this options object for method chaining
     */
    public AzureOptions setApiVersion(String apiVersion) {
        this.apiVersion = apiVersion;
        return this;
    }
}