From ed24ee36d34f373257bbf5095338251e1fb6b53e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 21:01:18 +0000 Subject: [PATCH 1/4] feat: [STG-2090] Add Azure Entra model auth support --- .stats.yml | 4 +- session.go | 2270 +++++++++++++++++++++++++++++++--- shared/constant/constants.go | 6 + 3 files changed, 2077 insertions(+), 203 deletions(-) diff --git a/.stats.yml b/.stats.yml index 15099ca..90ce078 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/stagehand-c7910965e66e73ad8b65b6cc391d431094b2a6c6577c3e9d82feaa8138e74cff.yml -openapi_spec_hash: 37748bb69c22a9ce721d9b5a5861f964 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/stagehand-4d0d50b4f18fd74f58aca0b84d6968d1228499f2fa4e5714516f13ff6f820c9d.yml +openapi_spec_hash: f7b1a869f3e412aea4d4bd42467791bb config_hash: 1fb12ae9b478488bc1e56bfbdc210b01 diff --git a/session.go b/session.go index a5c223c..256ca1b 100644 --- a/session.go +++ b/session.go @@ -11,6 +11,7 @@ import ( "slices" "github.com/browserbase/stagehand-go/v3/internal/apijson" + "github.com/browserbase/stagehand-go/v3/internal/paramutil" "github.com/browserbase/stagehand-go/v3/internal/requestconfig" "github.com/browserbase/stagehand-go/v3/option" "github.com/browserbase/stagehand-go/v3/packages/param" @@ -1001,14 +1002,20 @@ func (r *SessionActParamsOptions) UnmarshalJSON(data []byte) error { // // Use [param.IsOmitted] to confirm if a field is set. type SessionActParamsOptionsModelUnion struct { - OfSessionActsOptionsModelVertexModelConfigObject *SessionActParamsOptionsModelVertexModelConfigObject `json:",omitzero,inline"` - OfSessionActsOptionsModelGenericModelConfigObject *SessionActParamsOptionsModelGenericModelConfigObject `json:",omitzero,inline"` - OfString param.Opt[string] `json:",omitzero,inline"` + OfSessionActsOptionsModelVertexModelConfigObject *SessionActParamsOptionsModelVertexModelConfigObject `json:",omitzero,inline"` + OfSessionActsOptionsModelAzureEntraModelConfigObject *SessionActParamsOptionsModelAzureEntraModelConfigObject `json:",omitzero,inline"` + OfSessionActsOptionsModelAzureAPIKeyModelConfigObject *SessionActParamsOptionsModelAzureAPIKeyModelConfigObject `json:",omitzero,inline"` + OfSessionActsOptionsModelGenericModelConfigObject *SessionActParamsOptionsModelGenericModelConfigObject `json:",omitzero,inline"` + OfString param.Opt[string] `json:",omitzero,inline"` paramUnion } func (u SessionActParamsOptionsModelUnion) MarshalJSON() ([]byte, error) { - return param.MarshalUnion(u, u.OfSessionActsOptionsModelVertexModelConfigObject, u.OfSessionActsOptionsModelGenericModelConfigObject, u.OfString) + return param.MarshalUnion(u, u.OfSessionActsOptionsModelVertexModelConfigObject, + u.OfSessionActsOptionsModelAzureEntraModelConfigObject, + u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject, + u.OfSessionActsOptionsModelGenericModelConfigObject, + u.OfString) } func (u *SessionActParamsOptionsModelUnion) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, u) @@ -1017,6 +1024,10 @@ func (u *SessionActParamsOptionsModelUnion) UnmarshalJSON(data []byte) error { func (u *SessionActParamsOptionsModelUnion) asAny() any { if !param.IsOmitted(u.OfSessionActsOptionsModelVertexModelConfigObject) { return u.OfSessionActsOptionsModelVertexModelConfigObject + } else if !param.IsOmitted(u.OfSessionActsOptionsModelAzureEntraModelConfigObject) { + return u.OfSessionActsOptionsModelAzureEntraModelConfigObject + } else if !param.IsOmitted(u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject) { + return u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject } else if !param.IsOmitted(u.OfSessionActsOptionsModelGenericModelConfigObject) { return u.OfSessionActsOptionsModelGenericModelConfigObject } else if !param.IsOmitted(u.OfString) { @@ -1025,26 +1036,14 @@ func (u *SessionActParamsOptionsModelUnion) asAny() any { return nil } -// Returns a pointer to the underlying variant's property, if present. -func (u SessionActParamsOptionsModelUnion) GetAuth() *SessionActParamsOptionsModelVertexModelConfigObjectAuth { - if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { - return &vt.Auth - } - return nil -} - -// Returns a pointer to the underlying variant's property, if present. -func (u SessionActParamsOptionsModelUnion) GetProviderOptions() *SessionActParamsOptionsModelVertexModelConfigObjectProviderOptions { - if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { - return &vt.ProviderOptions - } - return nil -} - // Returns a pointer to the underlying variant's property, if present. func (u SessionActParamsOptionsModelUnion) GetModelName() *string { if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { return (*string)(&vt.ModelName) + } else if vt := u.OfSessionActsOptionsModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) + } else if vt := u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) } else if vt := u.OfSessionActsOptionsModelGenericModelConfigObject; vt != nil { return (*string)(&vt.ModelName) } @@ -1055,6 +1054,10 @@ func (u SessionActParamsOptionsModelUnion) GetModelName() *string { func (u SessionActParamsOptionsModelUnion) GetProvider() *string { if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { return (*string)(&vt.Provider) + } else if vt := u.OfSessionActsOptionsModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.Provider) + } else if vt := u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.Provider) } else if vt := u.OfSessionActsOptionsModelGenericModelConfigObject; vt != nil { return (*string)(&vt.Provider) } @@ -1065,6 +1068,8 @@ func (u SessionActParamsOptionsModelUnion) GetProvider() *string { func (u SessionActParamsOptionsModelUnion) GetAPIKey() *string { if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value + } else if vt := u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject; vt != nil && vt.APIKey.Valid() { + return &vt.APIKey.Value } else if vt := u.OfSessionActsOptionsModelGenericModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value } @@ -1075,16 +1080,230 @@ func (u SessionActParamsOptionsModelUnion) GetAPIKey() *string { func (u SessionActParamsOptionsModelUnion) GetBaseURL() *string { if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value + } else if vt := u.OfSessionActsOptionsModelAzureEntraModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value + } else if vt := u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value } else if vt := u.OfSessionActsOptionsModelGenericModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value } return nil } +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionActParamsOptionsModelUnion) GetAuth() (res sessionActParamsOptionsModelUnionAuth) { + if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { + res.any = &vt.Auth + } else if vt := u.OfSessionActsOptionsModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.Auth + } + return +} + +// Can have the runtime types +// [*SessionActParamsOptionsModelVertexModelConfigObjectAuth], +// [*SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth] +type sessionActParamsOptionsModelUnionAuth struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionActParamsOptionsModelVertexModelConfigObjectAuth: +// case *stagehand.SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth: +// default: +// fmt.Errorf("not present") +// } +func (u sessionActParamsOptionsModelUnionAuth) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionAuth) GetCredentials() *SessionActParamsOptionsModelVertexModelConfigObjectAuthCredentials { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelVertexModelConfigObjectAuth: + return &vt.Credentials + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionAuth) GetProjectID() *string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.ProjectID) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionAuth) GetScopes() *SessionActParamsOptionsModelVertexModelConfigObjectAuthScopesUnion { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelVertexModelConfigObjectAuth: + return &vt.Scopes + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionAuth) GetUniverseDomain() *string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.UniverseDomain) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionAuth) GetToken() *string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth: + return &vt.Token + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionAuth) GetType() *string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelVertexModelConfigObjectAuth: + return (*string)(&vt.Type) + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth: + return (*string)(&vt.Type) + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionActParamsOptionsModelUnion) GetProviderOptions() (res sessionActParamsOptionsModelUnionProviderOptions) { + if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionActsOptionsModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } + return +} + +// Can have the runtime types +// [*SessionActParamsOptionsModelVertexModelConfigObjectProviderOptions], +// [*SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions], +// [*SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions] +type sessionActParamsOptionsModelUnionProviderOptions struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionActParamsOptionsModelVertexModelConfigObjectProviderOptions: +// case *stagehand.SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions: +// case *stagehand.SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions: +// default: +// fmt.Errorf("not present") +// } +func (u sessionActParamsOptionsModelUnionProviderOptions) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionProviderOptions) GetVertex() *SessionActParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelVertexModelConfigObjectProviderOptions: + return &vt.Vertex + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u sessionActParamsOptionsModelUnionProviderOptions) GetAzure() (res sessionActParamsOptionsModelUnionProviderOptionsAzure) { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions: + res.any = &vt.Azure + case *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions: + res.any = &vt.Azure + } + return res +} + +// Can have the runtime types +// [*SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure], +// [*SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure] +type sessionActParamsOptionsModelUnionProviderOptionsAzure struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: +// case *stagehand.SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: +// default: +// fmt.Errorf("not present") +// } +func (u sessionActParamsOptionsModelUnionProviderOptionsAzure) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionProviderOptionsAzure) GetAPIVersion() *string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + case *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionProviderOptionsAzure) GetBaseURL() *string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + case *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionProviderOptionsAzure) GetResourceName() *string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + case *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionActParamsOptionsModelUnionProviderOptionsAzure) GetUseDeploymentBasedURLs() *bool { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + case *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + } + return nil +} + +// Returns a pointer to the underlying variant's Headers property, if present. +func (u sessionActParamsOptionsModelUnionProviderOptionsAzure) GetHeaders() map[string]string { + switch vt := u.any.(type) { + case *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return vt.Headers + case *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return vt.Headers + } + return nil +} + // Returns a pointer to the underlying variant's Headers property, if present. func (u SessionActParamsOptionsModelUnion) GetHeaders() map[string]string { if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { return vt.Headers + } else if vt := u.OfSessionActsOptionsModelAzureEntraModelConfigObject; vt != nil { + return vt.Headers + } else if vt := u.OfSessionActsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return vt.Headers } else if vt := u.OfSessionActsOptionsModelGenericModelConfigObject; vt != nil { return vt.Headers } @@ -1246,6 +1465,161 @@ func (r *SessionActParamsOptionsModelVertexModelConfigObjectProviderOptionsVerte return apijson.UnmarshalRoot(data, r) } +// The properties Auth, ModelName, Provider, ProviderOptions are required. +type SessionActParamsOptionsModelAzureEntraModelConfigObject struct { + // Azure provider authentication configuration + Auth SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth `json:"auth,omitzero" api:"required"` + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionActParamsOptionsModelAzureEntraModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionActParamsOptionsModelAzureEntraModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionActParamsOptionsModelAzureEntraModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider authentication configuration +// +// The properties Token, Type are required. +type SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth struct { + // Microsoft Entra ID bearer token for Azure OpenAI + Token string `json:"token" api:"required"` + // Use a Microsoft Entra ID bearer token for authentication + // + // This field can be elided, and will marshal its zero value as "azureEntraId". + Type constant.AzureEntraID `json:"type" default:"azureEntraId"` + paramObj +} + +func (r SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth) MarshalJSON() (data []byte, err error) { + type shadow SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionActParamsOptionsModelAzureEntraModelConfigObjectAuth) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionActParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// The properties ModelName, Provider, ProviderOptions are required. +type SessionActParamsOptionsModelAzureAPIKeyModelConfigObject struct { + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // API key for the model provider + APIKey param.Opt[string] `json:"apiKey,omitzero"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionActParamsOptionsModelAzureAPIKeyModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionActParamsOptionsModelAzureAPIKeyModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionActParamsOptionsModelAzureAPIKeyModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionActParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + // The property ModelName is required. type SessionActParamsOptionsModelGenericModelConfigObject struct { // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -1441,14 +1815,20 @@ func init() { // // Use [param.IsOmitted] to confirm if a field is set. type SessionExecuteParamsAgentConfigExecutionModelUnion struct { - OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject `json:",omitzero,inline"` - OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject *SessionExecuteParamsAgentConfigExecutionModelGenericModelConfigObject `json:",omitzero,inline"` - OfString param.Opt[string] `json:",omitzero,inline"` + OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject `json:",omitzero,inline"` + OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObject `json:",omitzero,inline"` + OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObject `json:",omitzero,inline"` + OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject *SessionExecuteParamsAgentConfigExecutionModelGenericModelConfigObject `json:",omitzero,inline"` + OfString param.Opt[string] `json:",omitzero,inline"` paramUnion } func (u SessionExecuteParamsAgentConfigExecutionModelUnion) MarshalJSON() ([]byte, error) { - return param.MarshalUnion(u, u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject, u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject, u.OfString) + return param.MarshalUnion(u, u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject, + u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject, + u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject, + u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject, + u.OfString) } func (u *SessionExecuteParamsAgentConfigExecutionModelUnion) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, u) @@ -1457,6 +1837,10 @@ func (u *SessionExecuteParamsAgentConfigExecutionModelUnion) UnmarshalJSON(data func (u *SessionExecuteParamsAgentConfigExecutionModelUnion) asAny() any { if !param.IsOmitted(u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject) { return u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject + } else if !param.IsOmitted(u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject) { + return u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject + } else if !param.IsOmitted(u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject) { + return u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject } else if !param.IsOmitted(u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject) { return u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject } else if !param.IsOmitted(u.OfString) { @@ -1465,26 +1849,14 @@ func (u *SessionExecuteParamsAgentConfigExecutionModelUnion) asAny() any { return nil } -// Returns a pointer to the underlying variant's property, if present. -func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetAuth() *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth { - if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { - return &vt.Auth - } - return nil -} - -// Returns a pointer to the underlying variant's property, if present. -func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetProviderOptions() *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectProviderOptions { - if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { - return &vt.ProviderOptions - } - return nil -} - // Returns a pointer to the underlying variant's property, if present. func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetModelName() *string { if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { return (*string)(&vt.ModelName) + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) } else if vt := u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject; vt != nil { return (*string)(&vt.ModelName) } @@ -1495,6 +1867,10 @@ func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetModelName() *stri func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetProvider() *string { if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { return (*string)(&vt.Provider) + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.Provider) + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.Provider) } else if vt := u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject; vt != nil { return (*string)(&vt.Provider) } @@ -1505,6 +1881,8 @@ func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetProvider() *strin func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetAPIKey() *string { if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject; vt != nil && vt.APIKey.Valid() { + return &vt.APIKey.Value } else if vt := u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value } @@ -1515,49 +1893,265 @@ func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetAPIKey() *string func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetBaseURL() *string { if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value } else if vt := u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value } return nil } -// Returns a pointer to the underlying variant's Headers property, if present. -func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetHeaders() map[string]string { +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetAuth() (res sessionExecuteParamsAgentConfigExecutionModelUnionAuth) { if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { - return vt.Headers - } else if vt := u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject; vt != nil { - return vt.Headers + res.any = &vt.Auth + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.Auth } - return nil + return } -// The properties Auth, ModelName, Provider, ProviderOptions are required. -type SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject struct { - // Vertex provider authentication configuration - Auth SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth `json:"auth,omitzero" api:"required"` - // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') - ModelName string `json:"modelName" api:"required"` - // Vertex provider-specific model configuration - ProviderOptions SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` - // API key for the model provider - APIKey param.Opt[string] `json:"apiKey,omitzero"` - // Base URL for the model provider - BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` - // Custom headers sent with every request to the model provider - Headers map[string]string `json:"headers,omitzero"` - // Vertex AI model provider - // - // This field can be elided, and will marshal its zero value as "vertex". - Provider constant.Vertex `json:"provider" default:"vertex"` - paramObj +// Can have the runtime types +// [*SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth], +// [*SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth] +type sessionExecuteParamsAgentConfigExecutionModelUnionAuth struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth: +// case *stagehand.SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExecuteParamsAgentConfigExecutionModelUnionAuth) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionAuth) GetCredentials() *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuthCredentials { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth: + return &vt.Credentials + } + return nil } -func (r SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject) MarshalJSON() (data []byte, err error) { - type shadow SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject - return param.MarshalObject(r, (*shadow)(&r)) +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionAuth) GetProjectID() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.ProjectID) + } + return nil } -func (r *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject) UnmarshalJSON(data []byte) error { - return apijson.UnmarshalRoot(data, r) + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionAuth) GetScopes() *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuthScopesUnion { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth: + return &vt.Scopes + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionAuth) GetUniverseDomain() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.UniverseDomain) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionAuth) GetToken() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth: + return &vt.Token + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionAuth) GetType() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth: + return (*string)(&vt.Type) + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth: + return (*string)(&vt.Type) + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetProviderOptions() (res sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptions) { + if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } + return +} + +// Can have the runtime types +// [*SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectProviderOptions], +// [*SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions], +// [*SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions] +type sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptions struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectProviderOptions: +// case *stagehand.SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions: +// case *stagehand.SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptions) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptions) GetVertex() *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectProviderOptionsVertex { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectProviderOptions: + return &vt.Vertex + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptions) GetAzure() (res sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure) { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions: + res.any = &vt.Azure + case *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions: + res.any = &vt.Azure + } + return res +} + +// Can have the runtime types +// [*SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure], +// [*SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure] +type sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure: +// case *stagehand.SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure) AsAny() any { + return u.any +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure) GetAPIVersion() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + case *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure) GetBaseURL() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + case *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure) GetResourceName() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + case *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure) GetUseDeploymentBasedURLs() *bool { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + case *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + } + return nil +} + +// Returns a pointer to the underlying variant's Headers property, if present. +func (u sessionExecuteParamsAgentConfigExecutionModelUnionProviderOptionsAzure) GetHeaders() map[string]string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure: + return vt.Headers + case *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return vt.Headers + } + return nil +} + +// Returns a pointer to the underlying variant's Headers property, if present. +func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetHeaders() map[string]string { + if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { + return vt.Headers + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureEntraModelConfigObject; vt != nil { + return vt.Headers + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelAzureAPIKeyModelConfigObject; vt != nil { + return vt.Headers + } else if vt := u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject; vt != nil { + return vt.Headers + } + return nil +} + +// The properties Auth, ModelName, Provider, ProviderOptions are required. +type SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject struct { + // Vertex provider authentication configuration + Auth SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectAuth `json:"auth,omitzero" api:"required"` + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Vertex provider-specific model configuration + ProviderOptions SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // API key for the model provider + APIKey param.Opt[string] `json:"apiKey,omitzero"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Vertex AI model provider + // + // This field can be elided, and will marshal its zero value as "vertex". + Provider constant.Vertex `json:"provider" default:"vertex"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) } // Vertex provider authentication configuration @@ -1686,6 +2280,161 @@ func (r *SessionExecuteParamsAgentConfigExecutionModelVertexModelConfigObjectPro return apijson.UnmarshalRoot(data, r) } +// The properties Auth, ModelName, Provider, ProviderOptions are required. +type SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObject struct { + // Azure provider authentication configuration + Auth SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth `json:"auth,omitzero" api:"required"` + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider authentication configuration +// +// The properties Token, Type are required. +type SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth struct { + // Microsoft Entra ID bearer token for Azure OpenAI + Token string `json:"token" api:"required"` + // Use a Microsoft Entra ID bearer token for authentication + // + // This field can be elided, and will marshal its zero value as "azureEntraId". + Type constant.AzureEntraID `json:"type" default:"azureEntraId"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectAuth) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelAzureEntraModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// The properties ModelName, Provider, ProviderOptions are required. +type SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObject struct { + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // API key for the model provider + APIKey param.Opt[string] `json:"apiKey,omitzero"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigExecutionModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + // The property ModelName is required. type SessionExecuteParamsAgentConfigExecutionModelGenericModelConfigObject struct { // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -1721,14 +2470,20 @@ func init() { // // Use [param.IsOmitted] to confirm if a field is set. type SessionExecuteParamsAgentConfigModelUnion struct { - OfSessionExecutesAgentConfigModelVertexModelConfigObject *SessionExecuteParamsAgentConfigModelVertexModelConfigObject `json:",omitzero,inline"` - OfSessionExecutesAgentConfigModelGenericModelConfigObject *SessionExecuteParamsAgentConfigModelGenericModelConfigObject `json:",omitzero,inline"` - OfString param.Opt[string] `json:",omitzero,inline"` + OfSessionExecutesAgentConfigModelVertexModelConfigObject *SessionExecuteParamsAgentConfigModelVertexModelConfigObject `json:",omitzero,inline"` + OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObject `json:",omitzero,inline"` + OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObject `json:",omitzero,inline"` + OfSessionExecutesAgentConfigModelGenericModelConfigObject *SessionExecuteParamsAgentConfigModelGenericModelConfigObject `json:",omitzero,inline"` + OfString param.Opt[string] `json:",omitzero,inline"` paramUnion } func (u SessionExecuteParamsAgentConfigModelUnion) MarshalJSON() ([]byte, error) { - return param.MarshalUnion(u, u.OfSessionExecutesAgentConfigModelVertexModelConfigObject, u.OfSessionExecutesAgentConfigModelGenericModelConfigObject, u.OfString) + return param.MarshalUnion(u, u.OfSessionExecutesAgentConfigModelVertexModelConfigObject, + u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject, + u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject, + u.OfSessionExecutesAgentConfigModelGenericModelConfigObject, + u.OfString) } func (u *SessionExecuteParamsAgentConfigModelUnion) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, u) @@ -1737,6 +2492,10 @@ func (u *SessionExecuteParamsAgentConfigModelUnion) UnmarshalJSON(data []byte) e func (u *SessionExecuteParamsAgentConfigModelUnion) asAny() any { if !param.IsOmitted(u.OfSessionExecutesAgentConfigModelVertexModelConfigObject) { return u.OfSessionExecutesAgentConfigModelVertexModelConfigObject + } else if !param.IsOmitted(u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject) { + return u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject + } else if !param.IsOmitted(u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject) { + return u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject } else if !param.IsOmitted(u.OfSessionExecutesAgentConfigModelGenericModelConfigObject) { return u.OfSessionExecutesAgentConfigModelGenericModelConfigObject } else if !param.IsOmitted(u.OfString) { @@ -1745,26 +2504,14 @@ func (u *SessionExecuteParamsAgentConfigModelUnion) asAny() any { return nil } -// Returns a pointer to the underlying variant's property, if present. -func (u SessionExecuteParamsAgentConfigModelUnion) GetAuth() *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth { - if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { - return &vt.Auth - } - return nil -} - -// Returns a pointer to the underlying variant's property, if present. -func (u SessionExecuteParamsAgentConfigModelUnion) GetProviderOptions() *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions { - if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { - return &vt.ProviderOptions - } - return nil -} - // Returns a pointer to the underlying variant's property, if present. func (u SessionExecuteParamsAgentConfigModelUnion) GetModelName() *string { if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { return (*string)(&vt.ModelName) + } else if vt := u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) + } else if vt := u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) } else if vt := u.OfSessionExecutesAgentConfigModelGenericModelConfigObject; vt != nil { return (*string)(&vt.ModelName) } @@ -1775,6 +2522,10 @@ func (u SessionExecuteParamsAgentConfigModelUnion) GetModelName() *string { func (u SessionExecuteParamsAgentConfigModelUnion) GetProvider() *string { if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { return (*string)(&vt.Provider) + } else if vt := u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.Provider) + } else if vt := u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.Provider) } else if vt := u.OfSessionExecutesAgentConfigModelGenericModelConfigObject; vt != nil { return (*string)(&vt.Provider) } @@ -1785,6 +2536,8 @@ func (u SessionExecuteParamsAgentConfigModelUnion) GetProvider() *string { func (u SessionExecuteParamsAgentConfigModelUnion) GetAPIKey() *string { if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value + } else if vt := u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject; vt != nil && vt.APIKey.Valid() { + return &vt.APIKey.Value } else if vt := u.OfSessionExecutesAgentConfigModelGenericModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value } @@ -1795,16 +2548,230 @@ func (u SessionExecuteParamsAgentConfigModelUnion) GetAPIKey() *string { func (u SessionExecuteParamsAgentConfigModelUnion) GetBaseURL() *string { if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value + } else if vt := u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value + } else if vt := u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value } else if vt := u.OfSessionExecutesAgentConfigModelGenericModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value } return nil } +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionExecuteParamsAgentConfigModelUnion) GetAuth() (res sessionExecuteParamsAgentConfigModelUnionAuth) { + if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { + res.any = &vt.Auth + } else if vt := u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.Auth + } + return +} + +// Can have the runtime types +// [*SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth], +// [*SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth] +type sessionExecuteParamsAgentConfigModelUnionAuth struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth: +// case *stagehand.SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExecuteParamsAgentConfigModelUnionAuth) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionAuth) GetCredentials() *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuthCredentials { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth: + return &vt.Credentials + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionAuth) GetProjectID() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.ProjectID) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionAuth) GetScopes() *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuthScopesUnion { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth: + return &vt.Scopes + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionAuth) GetUniverseDomain() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.UniverseDomain) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionAuth) GetToken() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth: + return &vt.Token + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionAuth) GetType() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuth: + return (*string)(&vt.Type) + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth: + return (*string)(&vt.Type) + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionExecuteParamsAgentConfigModelUnion) GetProviderOptions() (res sessionExecuteParamsAgentConfigModelUnionProviderOptions) { + if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } + return +} + +// Can have the runtime types +// [*SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions], +// [*SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions], +// [*SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions] +type sessionExecuteParamsAgentConfigModelUnionProviderOptions struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions: +// case *stagehand.SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions: +// case *stagehand.SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptions) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptions) GetVertex() *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions: + return &vt.Vertex + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptions) GetAzure() (res sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure) { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions: + res.any = &vt.Azure + case *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions: + res.any = &vt.Azure + } + return res +} + +// Can have the runtime types +// [*SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure], +// [*SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure] +type sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure: +// case *stagehand.SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure) GetAPIVersion() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + case *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure) GetBaseURL() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + case *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure) GetResourceName() *string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + case *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure) GetUseDeploymentBasedURLs() *bool { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + case *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + } + return nil +} + +// Returns a pointer to the underlying variant's Headers property, if present. +func (u sessionExecuteParamsAgentConfigModelUnionProviderOptionsAzure) GetHeaders() map[string]string { + switch vt := u.any.(type) { + case *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure: + return vt.Headers + case *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return vt.Headers + } + return nil +} + // Returns a pointer to the underlying variant's Headers property, if present. func (u SessionExecuteParamsAgentConfigModelUnion) GetHeaders() map[string]string { if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { return vt.Headers + } else if vt := u.OfSessionExecutesAgentConfigModelAzureEntraModelConfigObject; vt != nil { + return vt.Headers + } else if vt := u.OfSessionExecutesAgentConfigModelAzureAPIKeyModelConfigObject; vt != nil { + return vt.Headers } else if vt := u.OfSessionExecutesAgentConfigModelGenericModelConfigObject; vt != nil { return vt.Headers } @@ -1926,43 +2893,198 @@ func (u *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectAuthScopesUn return nil } -// Vertex provider-specific model configuration +// Vertex provider-specific model configuration +// +// The property Vertex is required. +type SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions struct { + // Vertex AI provider-specific settings + Vertex SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex `json:"vertex,omitzero" api:"required"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Vertex AI provider-specific settings +// +// The properties Location, Project are required. +type SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex struct { + // Google Cloud location for Vertex AI models + Location string `json:"location" api:"required"` + // Google Cloud project ID for Vertex AI models + Project string `json:"project" api:"required"` + // Base URL for the Vertex AI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the Vertex AI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// The properties Auth, ModelName, Provider, ProviderOptions are required. +type SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObject struct { + // Azure provider authentication configuration + Auth SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth `json:"auth,omitzero" api:"required"` + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider authentication configuration +// +// The properties Token, Type are required. +type SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth struct { + // Microsoft Entra ID bearer token for Azure OpenAI + Token string `json:"token" api:"required"` + // Use a Microsoft Entra ID bearer token for authentication + // + // This field can be elided, and will marshal its zero value as "azureEntraId". + Type constant.AzureEntraID `json:"type" default:"azureEntraId"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectAuth) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigModelAzureEntraModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// The properties ModelName, Provider, ProviderOptions are required. +type SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObject struct { + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // API key for the model provider + APIKey param.Opt[string] `json:"apiKey,omitzero"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration // -// The property Vertex is required. -type SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions struct { - // Vertex AI provider-specific settings - Vertex SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex `json:"vertex,omitzero" api:"required"` +// The property Azure is required. +type SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` paramObj } -func (r SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { - type shadow SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions +func (r SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions return param.MarshalObject(r, (*shadow)(&r)) } -func (r *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { +func (r *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } -// Vertex AI provider-specific settings -// -// The properties Location, Project are required. -type SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex struct { - // Google Cloud location for Vertex AI models - Location string `json:"location" api:"required"` - // Google Cloud project ID for Vertex AI models - Project string `json:"project" api:"required"` - // Base URL for the Vertex AI provider +// Azure OpenAI provider-specific settings +type SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` - // Custom headers sent with every request to the Vertex AI provider + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider Headers map[string]string `json:"headers,omitzero"` paramObj } -func (r SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex) MarshalJSON() (data []byte, err error) { - type shadow SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex +func (r SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure return param.MarshalObject(r, (*shadow)(&r)) } -func (r *SessionExecuteParamsAgentConfigModelVertexModelConfigObjectProviderOptionsVertex) UnmarshalJSON(data []byte) error { +func (r *SessionExecuteParamsAgentConfigModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } @@ -2154,14 +3276,20 @@ func (r *SessionExtractParamsOptions) UnmarshalJSON(data []byte) error { // // Use [param.IsOmitted] to confirm if a field is set. type SessionExtractParamsOptionsModelUnion struct { - OfSessionExtractsOptionsModelVertexModelConfigObject *SessionExtractParamsOptionsModelVertexModelConfigObject `json:",omitzero,inline"` - OfSessionExtractsOptionsModelGenericModelConfigObject *SessionExtractParamsOptionsModelGenericModelConfigObject `json:",omitzero,inline"` - OfString param.Opt[string] `json:",omitzero,inline"` + OfSessionExtractsOptionsModelVertexModelConfigObject *SessionExtractParamsOptionsModelVertexModelConfigObject `json:",omitzero,inline"` + OfSessionExtractsOptionsModelAzureEntraModelConfigObject *SessionExtractParamsOptionsModelAzureEntraModelConfigObject `json:",omitzero,inline"` + OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObject `json:",omitzero,inline"` + OfSessionExtractsOptionsModelGenericModelConfigObject *SessionExtractParamsOptionsModelGenericModelConfigObject `json:",omitzero,inline"` + OfString param.Opt[string] `json:",omitzero,inline"` paramUnion } func (u SessionExtractParamsOptionsModelUnion) MarshalJSON() ([]byte, error) { - return param.MarshalUnion(u, u.OfSessionExtractsOptionsModelVertexModelConfigObject, u.OfSessionExtractsOptionsModelGenericModelConfigObject, u.OfString) + return param.MarshalUnion(u, u.OfSessionExtractsOptionsModelVertexModelConfigObject, + u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject, + u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject, + u.OfSessionExtractsOptionsModelGenericModelConfigObject, + u.OfString) } func (u *SessionExtractParamsOptionsModelUnion) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, u) @@ -2170,6 +3298,10 @@ func (u *SessionExtractParamsOptionsModelUnion) UnmarshalJSON(data []byte) error func (u *SessionExtractParamsOptionsModelUnion) asAny() any { if !param.IsOmitted(u.OfSessionExtractsOptionsModelVertexModelConfigObject) { return u.OfSessionExtractsOptionsModelVertexModelConfigObject + } else if !param.IsOmitted(u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject) { + return u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject + } else if !param.IsOmitted(u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject) { + return u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject } else if !param.IsOmitted(u.OfSessionExtractsOptionsModelGenericModelConfigObject) { return u.OfSessionExtractsOptionsModelGenericModelConfigObject } else if !param.IsOmitted(u.OfString) { @@ -2178,26 +3310,14 @@ func (u *SessionExtractParamsOptionsModelUnion) asAny() any { return nil } -// Returns a pointer to the underlying variant's property, if present. -func (u SessionExtractParamsOptionsModelUnion) GetAuth() *SessionExtractParamsOptionsModelVertexModelConfigObjectAuth { - if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { - return &vt.Auth - } - return nil -} - -// Returns a pointer to the underlying variant's property, if present. -func (u SessionExtractParamsOptionsModelUnion) GetProviderOptions() *SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions { - if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { - return &vt.ProviderOptions - } - return nil -} - // Returns a pointer to the underlying variant's property, if present. func (u SessionExtractParamsOptionsModelUnion) GetModelName() *string { if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { return (*string)(&vt.ModelName) + } else if vt := u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) + } else if vt := u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) } else if vt := u.OfSessionExtractsOptionsModelGenericModelConfigObject; vt != nil { return (*string)(&vt.ModelName) } @@ -2208,6 +3328,10 @@ func (u SessionExtractParamsOptionsModelUnion) GetModelName() *string { func (u SessionExtractParamsOptionsModelUnion) GetProvider() *string { if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { return (*string)(&vt.Provider) + } else if vt := u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.Provider) + } else if vt := u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.Provider) } else if vt := u.OfSessionExtractsOptionsModelGenericModelConfigObject; vt != nil { return (*string)(&vt.Provider) } @@ -2218,6 +3342,8 @@ func (u SessionExtractParamsOptionsModelUnion) GetProvider() *string { func (u SessionExtractParamsOptionsModelUnion) GetAPIKey() *string { if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value + } else if vt := u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject; vt != nil && vt.APIKey.Valid() { + return &vt.APIKey.Value } else if vt := u.OfSessionExtractsOptionsModelGenericModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value } @@ -2228,16 +3354,230 @@ func (u SessionExtractParamsOptionsModelUnion) GetAPIKey() *string { func (u SessionExtractParamsOptionsModelUnion) GetBaseURL() *string { if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value + } else if vt := u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value + } else if vt := u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value } else if vt := u.OfSessionExtractsOptionsModelGenericModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value } return nil } +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionExtractParamsOptionsModelUnion) GetAuth() (res sessionExtractParamsOptionsModelUnionAuth) { + if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { + res.any = &vt.Auth + } else if vt := u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.Auth + } + return +} + +// Can have the runtime types +// [*SessionExtractParamsOptionsModelVertexModelConfigObjectAuth], +// [*SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth] +type sessionExtractParamsOptionsModelUnionAuth struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExtractParamsOptionsModelVertexModelConfigObjectAuth: +// case *stagehand.SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExtractParamsOptionsModelUnionAuth) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionAuth) GetCredentials() *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelVertexModelConfigObjectAuth: + return &vt.Credentials + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionAuth) GetProjectID() *string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.ProjectID) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionAuth) GetScopes() *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelVertexModelConfigObjectAuth: + return &vt.Scopes + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionAuth) GetUniverseDomain() *string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.UniverseDomain) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionAuth) GetToken() *string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth: + return &vt.Token + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionAuth) GetType() *string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelVertexModelConfigObjectAuth: + return (*string)(&vt.Type) + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth: + return (*string)(&vt.Type) + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionExtractParamsOptionsModelUnion) GetProviderOptions() (res sessionExtractParamsOptionsModelUnionProviderOptions) { + if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } + return +} + +// Can have the runtime types +// [*SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions], +// [*SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions], +// [*SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions] +type sessionExtractParamsOptionsModelUnionProviderOptions struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions: +// case *stagehand.SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions: +// case *stagehand.SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExtractParamsOptionsModelUnionProviderOptions) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionProviderOptions) GetVertex() *SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions: + return &vt.Vertex + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u sessionExtractParamsOptionsModelUnionProviderOptions) GetAzure() (res sessionExtractParamsOptionsModelUnionProviderOptionsAzure) { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions: + res.any = &vt.Azure + case *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions: + res.any = &vt.Azure + } + return res +} + +// Can have the runtime types +// [*SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure], +// [*SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure] +type sessionExtractParamsOptionsModelUnionProviderOptionsAzure struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: +// case *stagehand.SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: +// default: +// fmt.Errorf("not present") +// } +func (u sessionExtractParamsOptionsModelUnionProviderOptionsAzure) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionProviderOptionsAzure) GetAPIVersion() *string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + case *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionProviderOptionsAzure) GetBaseURL() *string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + case *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionProviderOptionsAzure) GetResourceName() *string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + case *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionExtractParamsOptionsModelUnionProviderOptionsAzure) GetUseDeploymentBasedURLs() *bool { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + case *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + } + return nil +} + +// Returns a pointer to the underlying variant's Headers property, if present. +func (u sessionExtractParamsOptionsModelUnionProviderOptionsAzure) GetHeaders() map[string]string { + switch vt := u.any.(type) { + case *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return vt.Headers + case *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return vt.Headers + } + return nil +} + // Returns a pointer to the underlying variant's Headers property, if present. func (u SessionExtractParamsOptionsModelUnion) GetHeaders() map[string]string { if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { return vt.Headers + } else if vt := u.OfSessionExtractsOptionsModelAzureEntraModelConfigObject; vt != nil { + return vt.Headers + } else if vt := u.OfSessionExtractsOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return vt.Headers } else if vt := u.OfSessionExtractsOptionsModelGenericModelConfigObject; vt != nil { return vt.Headers } @@ -2320,82 +3660,237 @@ type SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials stru paramObj } -func (r SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials) MarshalJSON() (data []byte, err error) { - type shadow SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials +func (r SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +func init() { + apijson.RegisterFieldValidator[SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials]( + "type", "service_account", + ) +} + +// Only one field can be non-zero. +// +// Use [param.IsOmitted] to confirm if a field is set. +type SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion struct { + OfString param.Opt[string] `json:",omitzero,inline"` + OfStringArray []string `json:",omitzero,inline"` + paramUnion +} + +func (u SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion) MarshalJSON() ([]byte, error) { + return param.MarshalUnion(u, u.OfString, u.OfStringArray) +} +func (u *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, u) +} + +func (u *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion) asAny() any { + if !param.IsOmitted(u.OfString) { + return &u.OfString.Value + } else if !param.IsOmitted(u.OfStringArray) { + return &u.OfStringArray + } + return nil +} + +// Vertex provider-specific model configuration +// +// The property Vertex is required. +type SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions struct { + // Vertex AI provider-specific settings + Vertex SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex `json:"vertex,omitzero" api:"required"` + paramObj +} + +func (r SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Vertex AI provider-specific settings +// +// The properties Location, Project are required. +type SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex struct { + // Google Cloud location for Vertex AI models + Location string `json:"location" api:"required"` + // Google Cloud project ID for Vertex AI models + Project string `json:"project" api:"required"` + // Base URL for the Vertex AI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the Vertex AI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// The properties Auth, ModelName, Provider, ProviderOptions are required. +type SessionExtractParamsOptionsModelAzureEntraModelConfigObject struct { + // Azure provider authentication configuration + Auth SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth `json:"auth,omitzero" api:"required"` + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionExtractParamsOptionsModelAzureEntraModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelAzureEntraModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExtractParamsOptionsModelAzureEntraModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider authentication configuration +// +// The properties Token, Type are required. +type SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth struct { + // Microsoft Entra ID bearer token for Azure OpenAI + Token string `json:"token" api:"required"` + // Use a Microsoft Entra ID bearer token for authentication + // + // This field can be elided, and will marshal its zero value as "azureEntraId". + Type constant.AzureEntraID `json:"type" default:"azureEntraId"` + paramObj +} + +func (r SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectAuth) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure return param.MarshalObject(r, (*shadow)(&r)) } -func (r *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials) UnmarshalJSON(data []byte) error { +func (r *SessionExtractParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } -func init() { - apijson.RegisterFieldValidator[SessionExtractParamsOptionsModelVertexModelConfigObjectAuthCredentials]( - "type", "service_account", - ) -} - -// Only one field can be non-zero. -// -// Use [param.IsOmitted] to confirm if a field is set. -type SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion struct { - OfString param.Opt[string] `json:",omitzero,inline"` - OfStringArray []string `json:",omitzero,inline"` - paramUnion +// The properties ModelName, Provider, ProviderOptions are required. +type SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObject struct { + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // API key for the model provider + APIKey param.Opt[string] `json:"apiKey,omitzero"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj } -func (u SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion) MarshalJSON() ([]byte, error) { - return param.MarshalUnion(u, u.OfString, u.OfStringArray) -} -func (u *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion) UnmarshalJSON(data []byte) error { - return apijson.UnmarshalRoot(data, u) +func (r SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) } - -func (u *SessionExtractParamsOptionsModelVertexModelConfigObjectAuthScopesUnion) asAny() any { - if !param.IsOmitted(u.OfString) { - return &u.OfString.Value - } else if !param.IsOmitted(u.OfStringArray) { - return &u.OfStringArray - } - return nil +func (r *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) } -// Vertex provider-specific model configuration +// Azure provider-specific model configuration // -// The property Vertex is required. -type SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions struct { - // Vertex AI provider-specific settings - Vertex SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex `json:"vertex,omitzero" api:"required"` +// The property Azure is required. +type SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` paramObj } -func (r SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { - type shadow SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions +func (r SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions return param.MarshalObject(r, (*shadow)(&r)) } -func (r *SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { +func (r *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } -// Vertex AI provider-specific settings -// -// The properties Location, Project are required. -type SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex struct { - // Google Cloud location for Vertex AI models - Location string `json:"location" api:"required"` - // Google Cloud project ID for Vertex AI models - Project string `json:"project" api:"required"` - // Base URL for the Vertex AI provider +// Azure OpenAI provider-specific settings +type SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` - // Custom headers sent with every request to the Vertex AI provider + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider Headers map[string]string `json:"headers,omitzero"` paramObj } -func (r SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex) MarshalJSON() (data []byte, err error) { - type shadow SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex +func (r SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure return param.MarshalObject(r, (*shadow)(&r)) } -func (r *SessionExtractParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex) UnmarshalJSON(data []byte) error { +func (r *SessionExtractParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, r) } @@ -2544,14 +4039,20 @@ func (r *SessionObserveParamsOptions) UnmarshalJSON(data []byte) error { // // Use [param.IsOmitted] to confirm if a field is set. type SessionObserveParamsOptionsModelUnion struct { - OfSessionObservesOptionsModelVertexModelConfigObject *SessionObserveParamsOptionsModelVertexModelConfigObject `json:",omitzero,inline"` - OfSessionObservesOptionsModelGenericModelConfigObject *SessionObserveParamsOptionsModelGenericModelConfigObject `json:",omitzero,inline"` - OfString param.Opt[string] `json:",omitzero,inline"` + OfSessionObservesOptionsModelVertexModelConfigObject *SessionObserveParamsOptionsModelVertexModelConfigObject `json:",omitzero,inline"` + OfSessionObservesOptionsModelAzureEntraModelConfigObject *SessionObserveParamsOptionsModelAzureEntraModelConfigObject `json:",omitzero,inline"` + OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObject `json:",omitzero,inline"` + OfSessionObservesOptionsModelGenericModelConfigObject *SessionObserveParamsOptionsModelGenericModelConfigObject `json:",omitzero,inline"` + OfString param.Opt[string] `json:",omitzero,inline"` paramUnion } func (u SessionObserveParamsOptionsModelUnion) MarshalJSON() ([]byte, error) { - return param.MarshalUnion(u, u.OfSessionObservesOptionsModelVertexModelConfigObject, u.OfSessionObservesOptionsModelGenericModelConfigObject, u.OfString) + return param.MarshalUnion(u, u.OfSessionObservesOptionsModelVertexModelConfigObject, + u.OfSessionObservesOptionsModelAzureEntraModelConfigObject, + u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject, + u.OfSessionObservesOptionsModelGenericModelConfigObject, + u.OfString) } func (u *SessionObserveParamsOptionsModelUnion) UnmarshalJSON(data []byte) error { return apijson.UnmarshalRoot(data, u) @@ -2560,6 +4061,10 @@ func (u *SessionObserveParamsOptionsModelUnion) UnmarshalJSON(data []byte) error func (u *SessionObserveParamsOptionsModelUnion) asAny() any { if !param.IsOmitted(u.OfSessionObservesOptionsModelVertexModelConfigObject) { return u.OfSessionObservesOptionsModelVertexModelConfigObject + } else if !param.IsOmitted(u.OfSessionObservesOptionsModelAzureEntraModelConfigObject) { + return u.OfSessionObservesOptionsModelAzureEntraModelConfigObject + } else if !param.IsOmitted(u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject) { + return u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject } else if !param.IsOmitted(u.OfSessionObservesOptionsModelGenericModelConfigObject) { return u.OfSessionObservesOptionsModelGenericModelConfigObject } else if !param.IsOmitted(u.OfString) { @@ -2568,26 +4073,14 @@ func (u *SessionObserveParamsOptionsModelUnion) asAny() any { return nil } -// Returns a pointer to the underlying variant's property, if present. -func (u SessionObserveParamsOptionsModelUnion) GetAuth() *SessionObserveParamsOptionsModelVertexModelConfigObjectAuth { - if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { - return &vt.Auth - } - return nil -} - -// Returns a pointer to the underlying variant's property, if present. -func (u SessionObserveParamsOptionsModelUnion) GetProviderOptions() *SessionObserveParamsOptionsModelVertexModelConfigObjectProviderOptions { - if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { - return &vt.ProviderOptions - } - return nil -} - // Returns a pointer to the underlying variant's property, if present. func (u SessionObserveParamsOptionsModelUnion) GetModelName() *string { if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { return (*string)(&vt.ModelName) + } else if vt := u.OfSessionObservesOptionsModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) + } else if vt := u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.ModelName) } else if vt := u.OfSessionObservesOptionsModelGenericModelConfigObject; vt != nil { return (*string)(&vt.ModelName) } @@ -2598,6 +4091,10 @@ func (u SessionObserveParamsOptionsModelUnion) GetModelName() *string { func (u SessionObserveParamsOptionsModelUnion) GetProvider() *string { if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { return (*string)(&vt.Provider) + } else if vt := u.OfSessionObservesOptionsModelAzureEntraModelConfigObject; vt != nil { + return (*string)(&vt.Provider) + } else if vt := u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return (*string)(&vt.Provider) } else if vt := u.OfSessionObservesOptionsModelGenericModelConfigObject; vt != nil { return (*string)(&vt.Provider) } @@ -2608,6 +4105,8 @@ func (u SessionObserveParamsOptionsModelUnion) GetProvider() *string { func (u SessionObserveParamsOptionsModelUnion) GetAPIKey() *string { if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value + } else if vt := u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject; vt != nil && vt.APIKey.Valid() { + return &vt.APIKey.Value } else if vt := u.OfSessionObservesOptionsModelGenericModelConfigObject; vt != nil && vt.APIKey.Valid() { return &vt.APIKey.Value } @@ -2618,16 +4117,230 @@ func (u SessionObserveParamsOptionsModelUnion) GetAPIKey() *string { func (u SessionObserveParamsOptionsModelUnion) GetBaseURL() *string { if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value + } else if vt := u.OfSessionObservesOptionsModelAzureEntraModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value + } else if vt := u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject; vt != nil && vt.BaseURL.Valid() { + return &vt.BaseURL.Value } else if vt := u.OfSessionObservesOptionsModelGenericModelConfigObject; vt != nil && vt.BaseURL.Valid() { return &vt.BaseURL.Value } return nil } +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionObserveParamsOptionsModelUnion) GetAuth() (res sessionObserveParamsOptionsModelUnionAuth) { + if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { + res.any = &vt.Auth + } else if vt := u.OfSessionObservesOptionsModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.Auth + } + return +} + +// Can have the runtime types +// [*SessionObserveParamsOptionsModelVertexModelConfigObjectAuth], +// [*SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth] +type sessionObserveParamsOptionsModelUnionAuth struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionObserveParamsOptionsModelVertexModelConfigObjectAuth: +// case *stagehand.SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth: +// default: +// fmt.Errorf("not present") +// } +func (u sessionObserveParamsOptionsModelUnionAuth) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionAuth) GetCredentials() *SessionObserveParamsOptionsModelVertexModelConfigObjectAuthCredentials { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelVertexModelConfigObjectAuth: + return &vt.Credentials + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionAuth) GetProjectID() *string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.ProjectID) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionAuth) GetScopes() *SessionObserveParamsOptionsModelVertexModelConfigObjectAuthScopesUnion { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelVertexModelConfigObjectAuth: + return &vt.Scopes + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionAuth) GetUniverseDomain() *string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelVertexModelConfigObjectAuth: + return paramutil.AddrIfPresent(vt.UniverseDomain) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionAuth) GetToken() *string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth: + return &vt.Token + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionAuth) GetType() *string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelVertexModelConfigObjectAuth: + return (*string)(&vt.Type) + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth: + return (*string)(&vt.Type) + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u SessionObserveParamsOptionsModelUnion) GetProviderOptions() (res sessionObserveParamsOptionsModelUnionProviderOptions) { + if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionObservesOptionsModelAzureEntraModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } else if vt := u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + res.any = &vt.ProviderOptions + } + return +} + +// Can have the runtime types +// [*SessionObserveParamsOptionsModelVertexModelConfigObjectProviderOptions], +// [*SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions], +// [*SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions] +type sessionObserveParamsOptionsModelUnionProviderOptions struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionObserveParamsOptionsModelVertexModelConfigObjectProviderOptions: +// case *stagehand.SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions: +// case *stagehand.SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions: +// default: +// fmt.Errorf("not present") +// } +func (u sessionObserveParamsOptionsModelUnionProviderOptions) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionProviderOptions) GetVertex() *SessionObserveParamsOptionsModelVertexModelConfigObjectProviderOptionsVertex { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelVertexModelConfigObjectProviderOptions: + return &vt.Vertex + } + return nil +} + +// Returns a subunion which exports methods to access subproperties +// +// Or use AsAny() to get the underlying value +func (u sessionObserveParamsOptionsModelUnionProviderOptions) GetAzure() (res sessionObserveParamsOptionsModelUnionProviderOptionsAzure) { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions: + res.any = &vt.Azure + case *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions: + res.any = &vt.Azure + } + return res +} + +// Can have the runtime types +// [*SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure], +// [*SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure] +type sessionObserveParamsOptionsModelUnionProviderOptionsAzure struct{ any } + +// Use the following switch statement to get the type of the union: +// +// switch u.AsAny().(type) { +// case *stagehand.SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: +// case *stagehand.SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: +// default: +// fmt.Errorf("not present") +// } +func (u sessionObserveParamsOptionsModelUnionProviderOptionsAzure) AsAny() any { return u.any } + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionProviderOptionsAzure) GetAPIVersion() *string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + case *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.APIVersion) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionProviderOptionsAzure) GetBaseURL() *string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + case *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.BaseURL) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionProviderOptionsAzure) GetResourceName() *string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + case *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.ResourceName) + } + return nil +} + +// Returns a pointer to the underlying variant's property, if present. +func (u sessionObserveParamsOptionsModelUnionProviderOptionsAzure) GetUseDeploymentBasedURLs() *bool { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + case *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return paramutil.AddrIfPresent(vt.UseDeploymentBasedURLs) + } + return nil +} + +// Returns a pointer to the underlying variant's Headers property, if present. +func (u sessionObserveParamsOptionsModelUnionProviderOptionsAzure) GetHeaders() map[string]string { + switch vt := u.any.(type) { + case *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure: + return vt.Headers + case *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure: + return vt.Headers + } + return nil +} + // Returns a pointer to the underlying variant's Headers property, if present. func (u SessionObserveParamsOptionsModelUnion) GetHeaders() map[string]string { if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { return vt.Headers + } else if vt := u.OfSessionObservesOptionsModelAzureEntraModelConfigObject; vt != nil { + return vt.Headers + } else if vt := u.OfSessionObservesOptionsModelAzureAPIKeyModelConfigObject; vt != nil { + return vt.Headers } else if vt := u.OfSessionObservesOptionsModelGenericModelConfigObject; vt != nil { return vt.Headers } @@ -2789,6 +4502,161 @@ func (r *SessionObserveParamsOptionsModelVertexModelConfigObjectProviderOptionsV return apijson.UnmarshalRoot(data, r) } +// The properties Auth, ModelName, Provider, ProviderOptions are required. +type SessionObserveParamsOptionsModelAzureEntraModelConfigObject struct { + // Azure provider authentication configuration + Auth SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth `json:"auth,omitzero" api:"required"` + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionObserveParamsOptionsModelAzureEntraModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionObserveParamsOptionsModelAzureEntraModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionObserveParamsOptionsModelAzureEntraModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider authentication configuration +// +// The properties Token, Type are required. +type SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth struct { + // Microsoft Entra ID bearer token for Azure OpenAI + Token string `json:"token" api:"required"` + // Use a Microsoft Entra ID bearer token for authentication + // + // This field can be elided, and will marshal its zero value as "azureEntraId". + Type constant.AzureEntraID `json:"type" default:"azureEntraId"` + paramObj +} + +func (r SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth) MarshalJSON() (data []byte, err error) { + type shadow SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectAuth) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionObserveParamsOptionsModelAzureEntraModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// The properties ModelName, Provider, ProviderOptions are required. +type SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObject struct { + // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + ModelName string `json:"modelName" api:"required"` + // Azure provider-specific model configuration + ProviderOptions SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions `json:"providerOptions,omitzero" api:"required"` + // API key for the model provider + APIKey param.Opt[string] `json:"apiKey,omitzero"` + // Base URL for the model provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Custom headers sent with every request to the model provider + Headers map[string]string `json:"headers,omitzero"` + // Azure OpenAI model provider + // + // This field can be elided, and will marshal its zero value as "azure". + Provider constant.Azure `json:"provider" default:"azure"` + paramObj +} + +func (r SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObject) MarshalJSON() (data []byte, err error) { + type shadow SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObject + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObject) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure provider-specific model configuration +// +// The property Azure is required. +type SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions struct { + // Azure OpenAI provider-specific settings + Azure SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure `json:"azure,omitzero" api:"required"` + paramObj +} + +func (r SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions) MarshalJSON() (data []byte, err error) { + type shadow SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptions) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +// Azure OpenAI provider-specific settings +type SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure struct { + // Azure OpenAI API version + APIVersion param.Opt[string] `json:"apiVersion,omitzero"` + // Base URL for the Azure OpenAI provider + BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` + // Azure OpenAI resource name + ResourceName param.Opt[string] `json:"resourceName,omitzero"` + // Whether to use deployment-based Azure OpenAI URLs + UseDeploymentBasedURLs param.Opt[bool] `json:"useDeploymentBasedUrls,omitzero"` + // Custom headers sent with every request to the Azure OpenAI provider + Headers map[string]string `json:"headers,omitzero"` + paramObj +} + +func (r SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) MarshalJSON() (data []byte, err error) { + type shadow SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure + return param.MarshalObject(r, (*shadow)(&r)) +} +func (r *SessionObserveParamsOptionsModelAzureAPIKeyModelConfigObjectProviderOptionsAzure) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + // The property ModelName is required. type SessionObserveParamsOptionsModelGenericModelConfigObject struct { // Model name string with provider prefix (e.g., 'openai/gpt-5-nano') diff --git a/shared/constant/constants.go b/shared/constant/constants.go index 65d2ba8..7ccf0b4 100644 --- a/shared/constant/constants.go +++ b/shared/constant/constants.go @@ -18,18 +18,24 @@ func ValueOf[T Constant[T]]() T { return t.Default() } +type Azure string // Always "azure" +type AzureEntraID string // Always "azureEntraId" type Browserbase string // Always "browserbase" type External string // Always "external" type GoogleServiceAccount string // Always "googleServiceAccount" type Running string // Always "running" type Vertex string // Always "vertex" +func (c Azure) Default() Azure { return "azure" } +func (c AzureEntraID) Default() AzureEntraID { return "azureEntraId" } func (c Browserbase) Default() Browserbase { return "browserbase" } func (c External) Default() External { return "external" } func (c GoogleServiceAccount) Default() GoogleServiceAccount { return "googleServiceAccount" } func (c Running) Default() Running { return "running" } func (c Vertex) Default() Vertex { return "vertex" } +func (c Azure) MarshalJSON() ([]byte, error) { return marshalString(c) } +func (c AzureEntraID) MarshalJSON() ([]byte, error) { return marshalString(c) } func (c Browserbase) MarshalJSON() ([]byte, error) { return marshalString(c) } func (c External) MarshalJSON() ([]byte, error) { return marshalString(c) } func (c GoogleServiceAccount) MarshalJSON() ([]byte, error) { return marshalString(c) } From 867a6f2c57cc9c66e22f30019073ffff5604afed Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 02:00:36 +0000 Subject: [PATCH 2/4] feat(stlc): configurable CI runner and private-production-repo support in workflow templates --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e10b7a..bc1535e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: permissions: contents: read id-token: write - runs-on: ${{ github.repository == 'stainless-sdks/stagehand-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: |- github.repository == 'stainless-sdks/stagehand-go' && (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') @@ -49,7 +49,7 @@ jobs: lint: timeout-minutes: 10 name: lint - runs-on: ${{ github.repository == 'stainless-sdks/stagehand-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: @@ -65,7 +65,7 @@ jobs: test: timeout-minutes: 10 name: test - runs-on: ${{ github.repository == 'stainless-sdks/stagehand-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 From 8e7365aa573bf3491660ebb8d7b476e734485db7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 23:38:02 +0000 Subject: [PATCH 3/4] feat(server-v3): expose OpenAI endpoint format --- .stats.yml | 4 +-- session.go | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 90ce078..7b1f04d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/stagehand-4d0d50b4f18fd74f58aca0b84d6968d1228499f2fa4e5714516f13ff6f820c9d.yml -openapi_spec_hash: f7b1a869f3e412aea4d4bd42467791bb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/stagehand-64b47a6dd07208d708130e739a272f7d37d4e42494a7c8e566ef66007f8ff25f.yml +openapi_spec_hash: 4cdfcfed592c8631fbab9117bf45bb67 config_hash: 1fb12ae9b478488bc1e56bfbdc210b01 diff --git a/session.go b/session.go index 256ca1b..b63a683 100644 --- a/session.go +++ b/session.go @@ -1036,6 +1036,14 @@ func (u *SessionActParamsOptionsModelUnion) asAny() any { return nil } +// Returns a pointer to the underlying variant's property, if present. +func (u SessionActParamsOptionsModelUnion) GetOpenAIEndpointFormat() *string { + if vt := u.OfSessionActsOptionsModelGenericModelConfigObject; vt != nil { + return &vt.OpenAIEndpointFormat + } + return nil +} + // Returns a pointer to the underlying variant's property, if present. func (u SessionActParamsOptionsModelUnion) GetModelName() *string { if vt := u.OfSessionActsOptionsModelVertexModelConfigObject; vt != nil { @@ -1630,6 +1638,11 @@ type SessionActParamsOptionsModelGenericModelConfigObject struct { BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` // Custom headers sent with every request to the model provider Headers map[string]string `json:"headers,omitzero"` + // Wire format used by an OpenAI-compatible endpoint. Defaults to the Responses + // API; use chat for Chat Completions-only endpoints. + // + // Any of "responses", "chat". + OpenAIEndpointFormat string `json:"openaiEndpointFormat,omitzero"` // AI provider for the model (or provide a baseURL endpoint instead) // // Any of "openai", "anthropic", "google", "microsoft", "bedrock". @@ -1646,6 +1659,9 @@ func (r *SessionActParamsOptionsModelGenericModelConfigObject) UnmarshalJSON(dat } func init() { + apijson.RegisterFieldValidator[SessionActParamsOptionsModelGenericModelConfigObject]( + "openaiEndpointFormat", "responses", "chat", + ) apijson.RegisterFieldValidator[SessionActParamsOptionsModelGenericModelConfigObject]( "provider", "openai", "anthropic", "google", "microsoft", "bedrock", ) @@ -1849,6 +1865,14 @@ func (u *SessionExecuteParamsAgentConfigExecutionModelUnion) asAny() any { return nil } +// Returns a pointer to the underlying variant's property, if present. +func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetOpenAIEndpointFormat() *string { + if vt := u.OfSessionExecutesAgentConfigExecutionModelGenericModelConfigObject; vt != nil { + return &vt.OpenAIEndpointFormat + } + return nil +} + // Returns a pointer to the underlying variant's property, if present. func (u SessionExecuteParamsAgentConfigExecutionModelUnion) GetModelName() *string { if vt := u.OfSessionExecutesAgentConfigExecutionModelVertexModelConfigObject; vt != nil { @@ -2445,6 +2469,11 @@ type SessionExecuteParamsAgentConfigExecutionModelGenericModelConfigObject struc BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` // Custom headers sent with every request to the model provider Headers map[string]string `json:"headers,omitzero"` + // Wire format used by an OpenAI-compatible endpoint. Defaults to the Responses + // API; use chat for Chat Completions-only endpoints. + // + // Any of "responses", "chat". + OpenAIEndpointFormat string `json:"openaiEndpointFormat,omitzero"` // AI provider for the model (or provide a baseURL endpoint instead) // // Any of "openai", "anthropic", "google", "microsoft", "bedrock". @@ -2461,6 +2490,9 @@ func (r *SessionExecuteParamsAgentConfigExecutionModelGenericModelConfigObject) } func init() { + apijson.RegisterFieldValidator[SessionExecuteParamsAgentConfigExecutionModelGenericModelConfigObject]( + "openaiEndpointFormat", "responses", "chat", + ) apijson.RegisterFieldValidator[SessionExecuteParamsAgentConfigExecutionModelGenericModelConfigObject]( "provider", "openai", "anthropic", "google", "microsoft", "bedrock", ) @@ -2504,6 +2536,14 @@ func (u *SessionExecuteParamsAgentConfigModelUnion) asAny() any { return nil } +// Returns a pointer to the underlying variant's property, if present. +func (u SessionExecuteParamsAgentConfigModelUnion) GetOpenAIEndpointFormat() *string { + if vt := u.OfSessionExecutesAgentConfigModelGenericModelConfigObject; vt != nil { + return &vt.OpenAIEndpointFormat + } + return nil +} + // Returns a pointer to the underlying variant's property, if present. func (u SessionExecuteParamsAgentConfigModelUnion) GetModelName() *string { if vt := u.OfSessionExecutesAgentConfigModelVertexModelConfigObject; vt != nil { @@ -3098,6 +3138,11 @@ type SessionExecuteParamsAgentConfigModelGenericModelConfigObject struct { BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` // Custom headers sent with every request to the model provider Headers map[string]string `json:"headers,omitzero"` + // Wire format used by an OpenAI-compatible endpoint. Defaults to the Responses + // API; use chat for Chat Completions-only endpoints. + // + // Any of "responses", "chat". + OpenAIEndpointFormat string `json:"openaiEndpointFormat,omitzero"` // AI provider for the model (or provide a baseURL endpoint instead) // // Any of "openai", "anthropic", "google", "microsoft", "bedrock". @@ -3114,6 +3159,9 @@ func (r *SessionExecuteParamsAgentConfigModelGenericModelConfigObject) Unmarshal } func init() { + apijson.RegisterFieldValidator[SessionExecuteParamsAgentConfigModelGenericModelConfigObject]( + "openaiEndpointFormat", "responses", "chat", + ) apijson.RegisterFieldValidator[SessionExecuteParamsAgentConfigModelGenericModelConfigObject]( "provider", "openai", "anthropic", "google", "microsoft", "bedrock", ) @@ -3310,6 +3358,14 @@ func (u *SessionExtractParamsOptionsModelUnion) asAny() any { return nil } +// Returns a pointer to the underlying variant's property, if present. +func (u SessionExtractParamsOptionsModelUnion) GetOpenAIEndpointFormat() *string { + if vt := u.OfSessionExtractsOptionsModelGenericModelConfigObject; vt != nil { + return &vt.OpenAIEndpointFormat + } + return nil +} + // Returns a pointer to the underlying variant's property, if present. func (u SessionExtractParamsOptionsModelUnion) GetModelName() *string { if vt := u.OfSessionExtractsOptionsModelVertexModelConfigObject; vt != nil { @@ -3904,6 +3960,11 @@ type SessionExtractParamsOptionsModelGenericModelConfigObject struct { BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` // Custom headers sent with every request to the model provider Headers map[string]string `json:"headers,omitzero"` + // Wire format used by an OpenAI-compatible endpoint. Defaults to the Responses + // API; use chat for Chat Completions-only endpoints. + // + // Any of "responses", "chat". + OpenAIEndpointFormat string `json:"openaiEndpointFormat,omitzero"` // AI provider for the model (or provide a baseURL endpoint instead) // // Any of "openai", "anthropic", "google", "microsoft", "bedrock". @@ -3920,6 +3981,9 @@ func (r *SessionExtractParamsOptionsModelGenericModelConfigObject) UnmarshalJSON } func init() { + apijson.RegisterFieldValidator[SessionExtractParamsOptionsModelGenericModelConfigObject]( + "openaiEndpointFormat", "responses", "chat", + ) apijson.RegisterFieldValidator[SessionExtractParamsOptionsModelGenericModelConfigObject]( "provider", "openai", "anthropic", "google", "microsoft", "bedrock", ) @@ -4073,6 +4137,14 @@ func (u *SessionObserveParamsOptionsModelUnion) asAny() any { return nil } +// Returns a pointer to the underlying variant's property, if present. +func (u SessionObserveParamsOptionsModelUnion) GetOpenAIEndpointFormat() *string { + if vt := u.OfSessionObservesOptionsModelGenericModelConfigObject; vt != nil { + return &vt.OpenAIEndpointFormat + } + return nil +} + // Returns a pointer to the underlying variant's property, if present. func (u SessionObserveParamsOptionsModelUnion) GetModelName() *string { if vt := u.OfSessionObservesOptionsModelVertexModelConfigObject; vt != nil { @@ -4667,6 +4739,11 @@ type SessionObserveParamsOptionsModelGenericModelConfigObject struct { BaseURL param.Opt[string] `json:"baseURL,omitzero" format:"uri"` // Custom headers sent with every request to the model provider Headers map[string]string `json:"headers,omitzero"` + // Wire format used by an OpenAI-compatible endpoint. Defaults to the Responses + // API; use chat for Chat Completions-only endpoints. + // + // Any of "responses", "chat". + OpenAIEndpointFormat string `json:"openaiEndpointFormat,omitzero"` // AI provider for the model (or provide a baseURL endpoint instead) // // Any of "openai", "anthropic", "google", "microsoft", "bedrock". @@ -4683,6 +4760,9 @@ func (r *SessionObserveParamsOptionsModelGenericModelConfigObject) UnmarshalJSON } func init() { + apijson.RegisterFieldValidator[SessionObserveParamsOptionsModelGenericModelConfigObject]( + "openaiEndpointFormat", "responses", "chat", + ) apijson.RegisterFieldValidator[SessionObserveParamsOptionsModelGenericModelConfigObject]( "provider", "openai", "anthropic", "google", "microsoft", "bedrock", ) From 242295643ea1044251c94c8bcc19ff487509b420 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 23:38:25 +0000 Subject: [PATCH 4/4] release: 3.22.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 10 ++++++++++ README.md | 2 +- internal/version.go | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index eba8a04..1887bd5 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "3.21.0" + ".": "3.22.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index fe549e6..7e1ce89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 3.22.0 (2026-07-21) + +Full Changelog: [v3.21.0...v3.22.0](https://github.com/browserbase/stagehand-go/compare/v3.21.0...v3.22.0) + +### Features + +* [STG-2090] Add Azure Entra model auth support ([ed24ee3](https://github.com/browserbase/stagehand-go/commit/ed24ee36d34f373257bbf5095338251e1fb6b53e)) +* **server-v3:** expose OpenAI endpoint format ([8e7365a](https://github.com/browserbase/stagehand-go/commit/8e7365aa573bf3491660ebb8d7b476e734485db7)) +* **stlc:** configurable CI runner and private-production-repo support in workflow templates ([867a6f2](https://github.com/browserbase/stagehand-go/commit/867a6f2c57cc9c66e22f30019073ffff5604afed)) + ## 3.21.0 (2026-05-27) Full Changelog: [v3.20.0...v3.21.0](https://github.com/browserbase/stagehand-go/compare/v3.20.0...v3.21.0) diff --git a/README.md b/README.md index a3282f4..773c79b 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ Or to pin the version: ```sh -go get -u 'github.com/browserbase/stagehand-go@v3.21.0' +go get -u 'github.com/browserbase/stagehand-go@v3.22.0' ``` diff --git a/internal/version.go b/internal/version.go index f43b02b..daf70da 100644 --- a/internal/version.go +++ b/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "3.21.0" // x-release-please-version +const PackageVersion = "3.22.0" // x-release-please-version