Skip to content

Commit

Permalink
Releasing version 65.74.0
Browse files Browse the repository at this point in the history
Releasing version 65.74.0
  • Loading branch information
oci-dex-release-bot authored Sep 17, 2024
2 parents 6e5612d + 335cb67 commit 53d2644
Show file tree
Hide file tree
Showing 106 changed files with 4,485 additions and 193 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)

## 65.74.0 - 2024-09-17
### Added
- Support for calling Oracle Cloud Infrastructure services in the eu-crissier-1 region
- Support for dedicated AI cluster unit shapes in the Generative AI service
- Support for ticket numbers when creating access requests in the Managed Access service
- Support for 23ai database, cloud VM clusters and VM cluster patching in the Exadata Fleet Update service
- Support for text to speech feature in the AI Speech service
- Support for notifications and transfer of capacity requests in the OCI Control Center service

### Breaking Changes
- The field `OccCustomerGroupId` was made mandatory in the models `ListOccAvailabilityCatalogsInternalRequest`, `ListOccCapacityRequestsInternalRequest`, and `ListInternalNamespaceOccOverviewsRequest` in the OCI Control Center service

## 65.73.0 - 2024-08-27
### Added
- Support for Delegate Access Control service
Expand Down
113 changes: 113 additions & 0 deletions aispeech/aispeech_aiservicespeech_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -991,6 +991,119 @@ func (client AIServiceSpeechClient) listTranscriptionTasks(ctx context.Context,
return response, err
}

// ListVoices Returns a list of speakers available to the user to choose from based on language code and voice type provided.
//
// # See also
//
// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/aispeech/ListVoices.go.html to see an example of how to use ListVoices API.
func (client AIServiceSpeechClient) ListVoices(ctx context.Context, request ListVoicesRequest) (response ListVoicesResponse, err error) {
var ociResponse common.OCIResponse
policy := common.NoRetryPolicy()
if client.RetryPolicy() != nil {
policy = *client.RetryPolicy()
}
if request.RetryPolicy() != nil {
policy = *request.RetryPolicy()
}
ociResponse, err = common.Retry(ctx, request, client.listVoices, policy)
if err != nil {
if ociResponse != nil {
if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
opcRequestId := httpResponse.Header.Get("opc-request-id")
response = ListVoicesResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
} else {
response = ListVoicesResponse{}
}
}
return
}
if convertedResponse, ok := ociResponse.(ListVoicesResponse); ok {
response = convertedResponse
} else {
err = fmt.Errorf("failed to convert OCIResponse into ListVoicesResponse")
}
return
}

// listVoices implements the OCIOperation interface (enables retrying operations)
func (client AIServiceSpeechClient) listVoices(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {

httpRequest, err := request.HTTPRequest(http.MethodGet, "/voices", binaryReqBody, extraHeaders)
if err != nil {
return nil, err
}

var response ListVoicesResponse
var httpResponse *http.Response
httpResponse, err = client.Call(ctx, &httpRequest)
defer common.CloseBodyIfValid(httpResponse)
response.RawResponse = httpResponse
if err != nil {
apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/speech/20220101/Voice/ListVoices"
err = common.PostProcessServiceError(err, "AIServiceSpeech", "ListVoices", apiReferenceLink)
return response, err
}

err = common.UnmarshalResponse(httpResponse, &response)
return response, err
}

// SynthesizeSpeech Creates an audio for the given input text based on other input parameters like language, voice type, etc.
//
// # See also
//
// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/aispeech/SynthesizeSpeech.go.html to see an example of how to use SynthesizeSpeech API.
func (client AIServiceSpeechClient) SynthesizeSpeech(ctx context.Context, request SynthesizeSpeechRequest) (response SynthesizeSpeechResponse, err error) {
var ociResponse common.OCIResponse
policy := common.NoRetryPolicy()
if client.RetryPolicy() != nil {
policy = *client.RetryPolicy()
}
if request.RetryPolicy() != nil {
policy = *request.RetryPolicy()
}
ociResponse, err = common.Retry(ctx, request, client.synthesizeSpeech, policy)
if err != nil {
if ociResponse != nil {
if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
opcRequestId := httpResponse.Header.Get("opc-request-id")
response = SynthesizeSpeechResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
} else {
response = SynthesizeSpeechResponse{}
}
}
return
}
if convertedResponse, ok := ociResponse.(SynthesizeSpeechResponse); ok {
response = convertedResponse
} else {
err = fmt.Errorf("failed to convert OCIResponse into SynthesizeSpeechResponse")
}
return
}

// synthesizeSpeech implements the OCIOperation interface (enables retrying operations)
func (client AIServiceSpeechClient) synthesizeSpeech(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {

httpRequest, err := request.HTTPRequest(http.MethodPost, "/actions/synthesizeSpeech", binaryReqBody, extraHeaders)
if err != nil {
return nil, err
}

var response SynthesizeSpeechResponse
var httpResponse *http.Response
httpResponse, err = client.Call(ctx, &httpRequest)
response.RawResponse = httpResponse
if err != nil {
apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/speech/20220101/SynthesizeSpeech/SynthesizeSpeech"
err = common.PostProcessServiceError(err, "AIServiceSpeech", "SynthesizeSpeech", apiReferenceLink)
return response, err
}

err = common.UnmarshalResponse(httpResponse, &response)
return response, err
}

// UpdateCustomization Updates a Customization by identifier
//
// # See also
Expand Down
99 changes: 99 additions & 0 deletions aispeech/list_voices_request_response.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
// Copyright (c) 2016, 2018, 2024, Oracle and/or its affiliates. All rights reserved.
// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
// Code generated. DO NOT EDIT.

package aispeech

import (
"fmt"
"github.com/oracle/oci-go-sdk/v65/common"
"net/http"
"strings"
)

// ListVoicesRequest wrapper for the ListVoices operation
//
// # See also
//
// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/aispeech/ListVoices.go.html to see an example of how to use ListVoicesRequest.
type ListVoicesRequest struct {

// The ID of the compartment in which to list resources.
CompartmentId *string `mandatory:"false" contributesTo:"query" name:"compartmentId"`

// The model the user wants to run the inference on.
ModelName TtsOracleModelDetailsModelNameEnum `mandatory:"false" contributesTo:"query" name:"modelName" omitEmpty:"true"`

// The name of the speaker voice in which the user wants tts inference to be.
DisplayName *string `mandatory:"false" contributesTo:"query" name:"displayName"`

// The client request ID for tracing.
OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"`

// Metadata about the request. This information will not be transmitted to the service, but
// represents information that the SDK will consume to drive retry behavior.
RequestMetadata common.RequestMetadata
}

func (request ListVoicesRequest) String() string {
return common.PointerString(request)
}

// HTTPRequest implements the OCIRequest interface
func (request ListVoicesRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) {

_, err := request.ValidateEnumValue()
if err != nil {
return http.Request{}, err
}
return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders)
}

// BinaryRequestBody implements the OCIRequest interface
func (request ListVoicesRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {

return nil, false

}

// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
func (request ListVoicesRequest) RetryPolicy() *common.RetryPolicy {
return request.RequestMetadata.RetryPolicy
}

// ValidateEnumValue returns an error when providing an unsupported enum value
// This function is being called during constructing API request process
// Not recommended for calling this function directly
func (request ListVoicesRequest) ValidateEnumValue() (bool, error) {
errMessage := []string{}
if _, ok := GetMappingTtsOracleModelDetailsModelNameEnum(string(request.ModelName)); !ok && request.ModelName != "" {
errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for ModelName: %s. Supported values are: %s.", request.ModelName, strings.Join(GetTtsOracleModelDetailsModelNameEnumStringValues(), ",")))
}
if len(errMessage) > 0 {
return true, fmt.Errorf(strings.Join(errMessage, "\n"))
}
return false, nil
}

// ListVoicesResponse wrapper for the ListVoices operation
type ListVoicesResponse struct {

// The underlying http response
RawResponse *http.Response

// The VoiceCollection instance
VoiceCollection `presentIn:"body"`

// Unique Oracle-assigned identifier for the request. If you need to contact
// Oracle about a particular request, please provide the request ID.
OpcRequestId *string `presentIn:"header" name:"opc-request-id"`
}

func (response ListVoicesResponse) String() string {
return common.PointerString(response)
}

// HTTPResponse implements the OCIResponse interface
func (response ListVoicesResponse) HTTPResponse() *http.Response {
return response.RawResponse
}
96 changes: 96 additions & 0 deletions aispeech/synthesize_speech_details.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
// Copyright (c) 2016, 2018, 2024, Oracle and/or its affiliates. All rights reserved.
// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
// Code generated. DO NOT EDIT.

// Speech API
//
// The OCI Speech Service harnesses the power of spoken language by allowing developers to easily convert file-based data containing human speech into highly accurate text transcriptions.
//

package aispeech

import (
"encoding/json"
"fmt"
"github.com/oracle/oci-go-sdk/v65/common"
"strings"
)

// SynthesizeSpeechDetails Input JSON to get audio inference from TTS Service.
type SynthesizeSpeechDetails struct {

// The text input to get the inference audio from TTS Service.
Text *string `mandatory:"true" json:"text"`

// If set to true, response will be sent in the chunked transfer-encoding and audio chunks
// are sent back as and when they are ready. If set to false, response will be sent only once
// the entire audio is generated.
IsStreamEnabled *bool `mandatory:"false" json:"isStreamEnabled"`

// The OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment where the user has access to call `SpeechSynthesize` api. But default user access will be checked at tenancy level.
CompartmentId *string `mandatory:"false" json:"compartmentId"`

Configuration TtsConfiguration `mandatory:"false" json:"configuration"`

AudioConfig TtsAudioConfig `mandatory:"false" json:"audioConfig"`
}

func (m SynthesizeSpeechDetails) String() string {
return common.PointerString(m)
}

// ValidateEnumValue returns an error when providing an unsupported enum value
// This function is being called during constructing API request process
// Not recommended for calling this function directly
func (m SynthesizeSpeechDetails) ValidateEnumValue() (bool, error) {
errMessage := []string{}

if len(errMessage) > 0 {
return true, fmt.Errorf(strings.Join(errMessage, "\n"))
}
return false, nil
}

// UnmarshalJSON unmarshals from json
func (m *SynthesizeSpeechDetails) UnmarshalJSON(data []byte) (e error) {
model := struct {
IsStreamEnabled *bool `json:"isStreamEnabled"`
CompartmentId *string `json:"compartmentId"`
Configuration ttsconfiguration `json:"configuration"`
AudioConfig ttsaudioconfig `json:"audioConfig"`
Text *string `json:"text"`
}{}

e = json.Unmarshal(data, &model)
if e != nil {
return
}
var nn interface{}
m.IsStreamEnabled = model.IsStreamEnabled

m.CompartmentId = model.CompartmentId

nn, e = model.Configuration.UnmarshalPolymorphicJSON(model.Configuration.JsonData)
if e != nil {
return
}
if nn != nil {
m.Configuration = nn.(TtsConfiguration)
} else {
m.Configuration = nil
}

nn, e = model.AudioConfig.UnmarshalPolymorphicJSON(model.AudioConfig.JsonData)
if e != nil {
return
}
if nn != nil {
m.AudioConfig = nn.(TtsAudioConfig)
} else {
m.AudioConfig = nil
}

m.Text = model.Text

return
}
Loading

0 comments on commit 53d2644

Please sign in to comment.