github.com/anthropics/anthropic-sdk-go@v1.70.1/betavaultcredential.go (about)

     1  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
     2  
     3  package anthropic
     4  
     5  import (
     6  	"context"
     7  	"encoding/json"
     8  	"errors"
     9  	"fmt"
    10  	"net/http"
    11  	"net/url"
    12  	"slices"
    13  	"time"
    14  
    15  	"github.com/anthropics/anthropic-sdk-go/internal/apijson"
    16  	"github.com/anthropics/anthropic-sdk-go/internal/apiquery"
    17  	"github.com/anthropics/anthropic-sdk-go/internal/requestconfig"
    18  	"github.com/anthropics/anthropic-sdk-go/option"
    19  	"github.com/anthropics/anthropic-sdk-go/packages/pagination"
    20  	"github.com/anthropics/anthropic-sdk-go/packages/param"
    21  	"github.com/anthropics/anthropic-sdk-go/packages/respjson"
    22  )
    23  
    24  // BetaVaultCredentialService contains methods and other services that help with
    25  // interacting with the anthropic API.
    26  //
    27  // Note, unlike clients, this service does not read variables from the environment
    28  // automatically. You should not instantiate this service directly, and instead use
    29  // the [NewBetaVaultCredentialService] method instead.
    30  type BetaVaultCredentialService struct {
    31  	Options []option.RequestOption
    32  }
    33  
    34  // NewBetaVaultCredentialService generates a new service that applies the given
    35  // options to each request. These options are applied after the parent client's
    36  // options (if there is one), and before any request-specific options.
    37  func NewBetaVaultCredentialService(opts ...option.RequestOption) (r BetaVaultCredentialService) {
    38  	r = BetaVaultCredentialService{}
    39  	r.Options = opts
    40  	return
    41  }
    42  
    43  // Create Credential
    44  func (r *BetaVaultCredentialService) New(ctx context.Context, vaultID string, params BetaVaultCredentialNewParams, opts ...option.RequestOption) (res *BetaManagedAgentsCredential, err error) {
    45  	for _, v := range params.Betas {
    46  		opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v)))
    47  	}
    48  	if !param.IsOmitted(params.WorkspaceID) {
    49  		opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value)))
    50  	}
    51  	opts = slices.Concat(r.Options, opts)
    52  	opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...)
    53  	if vaultID == "" {
    54  		err = errors.New("missing required vault_id parameter")
    55  		return nil, err
    56  	}
    57  	path := fmt.Sprintf("v1/vaults/%s/credentials?beta=true", vaultID)
    58  	err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
    59  	return res, err
    60  }
    61  
    62  // Get Credential
    63  func (r *BetaVaultCredentialService) Get(ctx context.Context, credentialID string, params BetaVaultCredentialGetParams, opts ...option.RequestOption) (res *BetaManagedAgentsCredential, err error) {
    64  	for _, v := range params.Betas {
    65  		opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v)))
    66  	}
    67  	if !param.IsOmitted(params.WorkspaceID) {
    68  		opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value)))
    69  	}
    70  	opts = slices.Concat(r.Options, opts)
    71  	opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...)
    72  	if params.VaultID == "" {
    73  		err = errors.New("missing required vault_id parameter")
    74  		return nil, err
    75  	}
    76  	if credentialID == "" {
    77  		err = errors.New("missing required credential_id parameter")
    78  		return nil, err
    79  	}
    80  	path := fmt.Sprintf("v1/vaults/%s/credentials/%s?beta=true", params.VaultID, credentialID)
    81  	err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
    82  	return res, err
    83  }
    84  
    85  // Update Credential
    86  func (r *BetaVaultCredentialService) Update(ctx context.Context, credentialID string, params BetaVaultCredentialUpdateParams, opts ...option.RequestOption) (res *BetaManagedAgentsCredential, err error) {
    87  	for _, v := range params.Betas {
    88  		opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v)))
    89  	}
    90  	if !param.IsOmitted(params.WorkspaceID) {
    91  		opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value)))
    92  	}
    93  	opts = slices.Concat(r.Options, opts)
    94  	opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...)
    95  	if params.VaultID == "" {
    96  		err = errors.New("missing required vault_id parameter")
    97  		return nil, err
    98  	}
    99  	if credentialID == "" {
   100  		err = errors.New("missing required credential_id parameter")
   101  		return nil, err
   102  	}
   103  	path := fmt.Sprintf("v1/vaults/%s/credentials/%s?beta=true", params.VaultID, credentialID)
   104  	err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
   105  	return res, err
   106  }
   107  
   108  // List Credentials
   109  func (r *BetaVaultCredentialService) List(ctx context.Context, vaultID string, params BetaVaultCredentialListParams, opts ...option.RequestOption) (res *pagination.PageCursor[BetaManagedAgentsCredential], err error) {
   110  	var raw *http.Response
   111  	for _, v := range params.Betas {
   112  		opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v)))
   113  	}
   114  	if !param.IsOmitted(params.WorkspaceID) {
   115  		opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value)))
   116  	}
   117  	opts = slices.Concat(r.Options, opts)
   118  	opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01"), option.WithResponseInto(&raw)}, opts...)
   119  	if vaultID == "" {
   120  		err = errors.New("missing required vault_id parameter")
   121  		return nil, err
   122  	}
   123  	path := fmt.Sprintf("v1/vaults/%s/credentials?beta=true", vaultID)
   124  	cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, params, &res, opts...)
   125  	if err != nil {
   126  		return nil, err
   127  	}
   128  	err = cfg.Execute()
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	res.SetPageConfig(cfg, raw)
   133  	return res, nil
   134  }
   135  
   136  // List Credentials
   137  func (r *BetaVaultCredentialService) ListAutoPaging(ctx context.Context, vaultID string, params BetaVaultCredentialListParams, opts ...option.RequestOption) *pagination.PageCursorAutoPager[BetaManagedAgentsCredential] {
   138  	return pagination.NewPageCursorAutoPager(r.List(ctx, vaultID, params, opts...))
   139  }
   140  
   141  // Delete Credential
   142  func (r *BetaVaultCredentialService) Delete(ctx context.Context, credentialID string, params BetaVaultCredentialDeleteParams, opts ...option.RequestOption) (res *BetaManagedAgentsDeletedCredential, err error) {
   143  	for _, v := range params.Betas {
   144  		opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v)))
   145  	}
   146  	if !param.IsOmitted(params.WorkspaceID) {
   147  		opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value)))
   148  	}
   149  	opts = slices.Concat(r.Options, opts)
   150  	opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...)
   151  	if params.VaultID == "" {
   152  		err = errors.New("missing required vault_id parameter")
   153  		return nil, err
   154  	}
   155  	if credentialID == "" {
   156  		err = errors.New("missing required credential_id parameter")
   157  		return nil, err
   158  	}
   159  	path := fmt.Sprintf("v1/vaults/%s/credentials/%s?beta=true", params.VaultID, credentialID)
   160  	err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...)
   161  	return res, err
   162  }
   163  
   164  // Archive Credential
   165  func (r *BetaVaultCredentialService) Archive(ctx context.Context, credentialID string, params BetaVaultCredentialArchiveParams, opts ...option.RequestOption) (res *BetaManagedAgentsCredential, err error) {
   166  	for _, v := range params.Betas {
   167  		opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v)))
   168  	}
   169  	if !param.IsOmitted(params.WorkspaceID) {
   170  		opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value)))
   171  	}
   172  	opts = slices.Concat(r.Options, opts)
   173  	opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...)
   174  	if params.VaultID == "" {
   175  		err = errors.New("missing required vault_id parameter")
   176  		return nil, err
   177  	}
   178  	if credentialID == "" {
   179  		err = errors.New("missing required credential_id parameter")
   180  		return nil, err
   181  	}
   182  	path := fmt.Sprintf("v1/vaults/%s/credentials/%s/archive?beta=true", params.VaultID, credentialID)
   183  	err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...)
   184  	return res, err
   185  }
   186  
   187  // Validate Credential
   188  func (r *BetaVaultCredentialService) MCPOAuthValidate(ctx context.Context, credentialID string, params BetaVaultCredentialMCPOAuthValidateParams, opts ...option.RequestOption) (res *BetaManagedAgentsCredentialValidation, err error) {
   189  	for _, v := range params.Betas {
   190  		opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v)))
   191  	}
   192  	if !param.IsOmitted(params.WorkspaceID) {
   193  		opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value)))
   194  	}
   195  	opts = slices.Concat(r.Options, opts)
   196  	opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...)
   197  	if params.VaultID == "" {
   198  		err = errors.New("missing required vault_id parameter")
   199  		return nil, err
   200  	}
   201  	if credentialID == "" {
   202  		err = errors.New("missing required credential_id parameter")
   203  		return nil, err
   204  	}
   205  	path := fmt.Sprintf("v1/vaults/%s/credentials/%s/mcp_oauth_validate?beta=true", params.VaultID, credentialID)
   206  	err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...)
   207  	return res, err
   208  }
   209  
   210  // A credential stored in a vault. Sensitive fields are never returned in
   211  // responses.
   212  type BetaManagedAgentsCredential struct {
   213  	// Unique identifier for the credential.
   214  	ID string `json:"id" api:"required"`
   215  	// A timestamp in RFC 3339 format
   216  	ArchivedAt time.Time `json:"archived_at" api:"required" format:"date-time"`
   217  	// Authentication details for a credential.
   218  	Auth BetaManagedAgentsCredentialAuthUnion `json:"auth" api:"required"`
   219  	// A timestamp in RFC 3339 format
   220  	CreatedAt time.Time `json:"created_at" api:"required" format:"date-time"`
   221  	// Arbitrary key-value metadata attached to the credential.
   222  	Metadata map[string]string `json:"metadata" api:"required"`
   223  	// Any of "vault_credential".
   224  	Type BetaManagedAgentsCredentialType `json:"type" api:"required"`
   225  	// A timestamp in RFC 3339 format
   226  	UpdatedAt time.Time `json:"updated_at" api:"required" format:"date-time"`
   227  	// Identifier of the vault this credential belongs to.
   228  	VaultID string `json:"vault_id" api:"required"`
   229  	// Human-readable name for the credential.
   230  	DisplayName string `json:"display_name" api:"nullable"`
   231  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   232  	JSON struct {
   233  		ID          respjson.Field
   234  		ArchivedAt  respjson.Field
   235  		Auth        respjson.Field
   236  		CreatedAt   respjson.Field
   237  		Metadata    respjson.Field
   238  		Type        respjson.Field
   239  		UpdatedAt   respjson.Field
   240  		VaultID     respjson.Field
   241  		DisplayName respjson.Field
   242  		ExtraFields map[string]respjson.Field
   243  		raw         string
   244  	} `json:"-"`
   245  }
   246  
   247  // Returns the unmodified JSON received from the API
   248  func (r BetaManagedAgentsCredential) RawJSON() string { return r.JSON.raw }
   249  func (r *BetaManagedAgentsCredential) UnmarshalJSON(data []byte) error {
   250  	return apijson.UnmarshalRoot(data, r)
   251  }
   252  
   253  // BetaManagedAgentsCredentialAuthUnion contains all possible properties and values
   254  // from [BetaManagedAgentsMCPOAuthAuthResponse],
   255  // [BetaManagedAgentsStaticBearerAuthResponse],
   256  // [BetaManagedAgentsEnvironmentVariableAuthResponse].
   257  //
   258  // Use the [BetaManagedAgentsCredentialAuthUnion.AsAny] method to switch on the
   259  // variant.
   260  //
   261  // Use the methods beginning with 'As' to cast the union to one of its variants.
   262  type BetaManagedAgentsCredentialAuthUnion struct {
   263  	MCPServerURL string `json:"mcp_server_url"`
   264  	// Any of "mcp_oauth", "static_bearer", "environment_variable".
   265  	Type string `json:"type"`
   266  	// This field is from variant [BetaManagedAgentsMCPOAuthAuthResponse].
   267  	ExpiresAt time.Time `json:"expires_at"`
   268  	// This field is from variant [BetaManagedAgentsMCPOAuthAuthResponse].
   269  	Refresh BetaManagedAgentsMCPOAuthRefreshResponse `json:"refresh"`
   270  	// This field is from variant [BetaManagedAgentsEnvironmentVariableAuthResponse].
   271  	InjectionLocation BetaManagedAgentsInjectionLocationResponse `json:"injection_location"`
   272  	// This field is from variant [BetaManagedAgentsEnvironmentVariableAuthResponse].
   273  	Networking BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion `json:"networking"`
   274  	// This field is from variant [BetaManagedAgentsEnvironmentVariableAuthResponse].
   275  	SecretName string `json:"secret_name"`
   276  	JSON       struct {
   277  		MCPServerURL      respjson.Field
   278  		Type              respjson.Field
   279  		ExpiresAt         respjson.Field
   280  		Refresh           respjson.Field
   281  		InjectionLocation respjson.Field
   282  		Networking        respjson.Field
   283  		SecretName        respjson.Field
   284  		raw               string
   285  	} `json:"-"`
   286  }
   287  
   288  // anyBetaManagedAgentsCredentialAuth is implemented by each variant of
   289  // [BetaManagedAgentsCredentialAuthUnion] to add type safety for the return type of
   290  // [BetaManagedAgentsCredentialAuthUnion.AsAny]
   291  type anyBetaManagedAgentsCredentialAuth interface {
   292  	implBetaManagedAgentsCredentialAuthUnion()
   293  }
   294  
   295  func (BetaManagedAgentsMCPOAuthAuthResponse) implBetaManagedAgentsCredentialAuthUnion()            {}
   296  func (BetaManagedAgentsStaticBearerAuthResponse) implBetaManagedAgentsCredentialAuthUnion()        {}
   297  func (BetaManagedAgentsEnvironmentVariableAuthResponse) implBetaManagedAgentsCredentialAuthUnion() {}
   298  
   299  // Use the following switch statement to find the correct variant
   300  //
   301  //	switch variant := BetaManagedAgentsCredentialAuthUnion.AsAny().(type) {
   302  //	case anthropic.BetaManagedAgentsMCPOAuthAuthResponse:
   303  //	case anthropic.BetaManagedAgentsStaticBearerAuthResponse:
   304  //	case anthropic.BetaManagedAgentsEnvironmentVariableAuthResponse:
   305  //	default:
   306  //	  fmt.Errorf("no variant present")
   307  //	}
   308  func (u BetaManagedAgentsCredentialAuthUnion) AsAny() anyBetaManagedAgentsCredentialAuth {
   309  	switch u.Type {
   310  	case "mcp_oauth":
   311  		return u.AsMCPOAuth()
   312  	case "static_bearer":
   313  		return u.AsStaticBearer()
   314  	case "environment_variable":
   315  		return u.AsEnvironmentVariable()
   316  	}
   317  	return nil
   318  }
   319  
   320  func (u BetaManagedAgentsCredentialAuthUnion) AsMCPOAuth() (v BetaManagedAgentsMCPOAuthAuthResponse) {
   321  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   322  	return
   323  }
   324  
   325  func (u BetaManagedAgentsCredentialAuthUnion) AsStaticBearer() (v BetaManagedAgentsStaticBearerAuthResponse) {
   326  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   327  	return
   328  }
   329  
   330  func (u BetaManagedAgentsCredentialAuthUnion) AsEnvironmentVariable() (v BetaManagedAgentsEnvironmentVariableAuthResponse) {
   331  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   332  	return
   333  }
   334  
   335  // Returns the unmodified JSON received from the API
   336  func (u BetaManagedAgentsCredentialAuthUnion) RawJSON() string { return u.JSON.raw }
   337  
   338  func (r *BetaManagedAgentsCredentialAuthUnion) UnmarshalJSON(data []byte) error {
   339  	return apijson.UnmarshalRoot(data, r)
   340  }
   341  
   342  type BetaManagedAgentsCredentialType string
   343  
   344  const (
   345  	BetaManagedAgentsCredentialTypeVaultCredential BetaManagedAgentsCredentialType = "vault_credential"
   346  )
   347  
   348  func BetaManagedAgentsCredentialNetworkingParamsOfUnrestricted(type_ BetaManagedAgentsUnrestrictedCredentialNetworkingParamsType) BetaManagedAgentsCredentialNetworkingParamsUnion {
   349  	var unrestricted BetaManagedAgentsUnrestrictedCredentialNetworkingParams
   350  	unrestricted.Type = type_
   351  	return BetaManagedAgentsCredentialNetworkingParamsUnion{OfUnrestricted: &unrestricted}
   352  }
   353  
   354  func BetaManagedAgentsCredentialNetworkingParamsOfLimited(allowedHosts []string) BetaManagedAgentsCredentialNetworkingParamsUnion {
   355  	var limited BetaManagedAgentsLimitedCredentialNetworkingParams
   356  	limited.AllowedHosts = allowedHosts
   357  	return BetaManagedAgentsCredentialNetworkingParamsUnion{OfLimited: &limited}
   358  }
   359  
   360  // Only one field can be non-zero.
   361  //
   362  // Use [param.IsOmitted] to confirm if a field is set.
   363  type BetaManagedAgentsCredentialNetworkingParamsUnion struct {
   364  	OfUnrestricted *BetaManagedAgentsUnrestrictedCredentialNetworkingParams `json:",omitzero,inline"`
   365  	OfLimited      *BetaManagedAgentsLimitedCredentialNetworkingParams      `json:",omitzero,inline"`
   366  	paramUnion
   367  }
   368  
   369  func (u BetaManagedAgentsCredentialNetworkingParamsUnion) MarshalJSON() ([]byte, error) {
   370  	return param.MarshalUnion(u, u.OfUnrestricted, u.OfLimited)
   371  }
   372  func (u *BetaManagedAgentsCredentialNetworkingParamsUnion) UnmarshalJSON(data []byte) error {
   373  	return apijson.UnmarshalRoot(data, u)
   374  }
   375  
   376  func (u *BetaManagedAgentsCredentialNetworkingParamsUnion) asAny() any {
   377  	if !param.IsOmitted(u.OfUnrestricted) {
   378  		return u.OfUnrestricted
   379  	} else if !param.IsOmitted(u.OfLimited) {
   380  		return u.OfLimited
   381  	}
   382  	return nil
   383  }
   384  
   385  // Returns a pointer to the underlying variant's property, if present.
   386  func (u BetaManagedAgentsCredentialNetworkingParamsUnion) GetAllowedHosts() []string {
   387  	if vt := u.OfLimited; vt != nil {
   388  		return vt.AllowedHosts
   389  	}
   390  	return nil
   391  }
   392  
   393  // Returns a pointer to the underlying variant's property, if present.
   394  func (u BetaManagedAgentsCredentialNetworkingParamsUnion) GetType() *string {
   395  	if vt := u.OfUnrestricted; vt != nil {
   396  		return (*string)(&vt.Type)
   397  	} else if vt := u.OfLimited; vt != nil {
   398  		return (*string)(&vt.Type)
   399  	}
   400  	return nil
   401  }
   402  
   403  func init() {
   404  	apijson.RegisterUnion[BetaManagedAgentsCredentialNetworkingParamsUnion](
   405  		"type",
   406  		apijson.Discriminator[BetaManagedAgentsUnrestrictedCredentialNetworkingParams]("unrestricted"),
   407  		apijson.Discriminator[BetaManagedAgentsLimitedCredentialNetworkingParams]("limited"),
   408  	)
   409  }
   410  
   411  // Result of live-probing a credential against its configured MCP server.
   412  type BetaManagedAgentsCredentialValidation struct {
   413  	// Unique identifier of the credential that was validated.
   414  	CredentialID string `json:"credential_id" api:"required"`
   415  	// Whether the credential has a refresh token configured.
   416  	HasRefreshToken bool `json:"has_refresh_token" api:"required"`
   417  	// The failing step of an MCP validation probe.
   418  	MCPProbe BetaManagedAgentsMCPProbe `json:"mcp_probe" api:"required"`
   419  	// Outcome of a refresh-token exchange attempted during credential validation.
   420  	Refresh BetaManagedAgentsRefreshObject `json:"refresh" api:"required"`
   421  	// Overall verdict of a credential validation probe.
   422  	//
   423  	// Any of "valid", "invalid", "unknown".
   424  	Status BetaManagedAgentsCredentialValidationStatus `json:"status" api:"required"`
   425  	// Any of "vault_credential_validation".
   426  	Type BetaManagedAgentsCredentialValidationType `json:"type" api:"required"`
   427  	// A timestamp in RFC 3339 format
   428  	ValidatedAt time.Time `json:"validated_at" api:"required" format:"date-time"`
   429  	// Identifier of the vault containing the credential.
   430  	VaultID string `json:"vault_id" api:"required"`
   431  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   432  	JSON struct {
   433  		CredentialID    respjson.Field
   434  		HasRefreshToken respjson.Field
   435  		MCPProbe        respjson.Field
   436  		Refresh         respjson.Field
   437  		Status          respjson.Field
   438  		Type            respjson.Field
   439  		ValidatedAt     respjson.Field
   440  		VaultID         respjson.Field
   441  		ExtraFields     map[string]respjson.Field
   442  		raw             string
   443  	} `json:"-"`
   444  }
   445  
   446  // Returns the unmodified JSON received from the API
   447  func (r BetaManagedAgentsCredentialValidation) RawJSON() string { return r.JSON.raw }
   448  func (r *BetaManagedAgentsCredentialValidation) UnmarshalJSON(data []byte) error {
   449  	return apijson.UnmarshalRoot(data, r)
   450  }
   451  
   452  type BetaManagedAgentsCredentialValidationType string
   453  
   454  const (
   455  	BetaManagedAgentsCredentialValidationTypeVaultCredentialValidation BetaManagedAgentsCredentialValidationType = "vault_credential_validation"
   456  )
   457  
   458  // Overall verdict of a credential validation probe.
   459  type BetaManagedAgentsCredentialValidationStatus string
   460  
   461  const (
   462  	BetaManagedAgentsCredentialValidationStatusValid   BetaManagedAgentsCredentialValidationStatus = "valid"
   463  	BetaManagedAgentsCredentialValidationStatusInvalid BetaManagedAgentsCredentialValidationStatus = "invalid"
   464  	BetaManagedAgentsCredentialValidationStatusUnknown BetaManagedAgentsCredentialValidationStatus = "unknown"
   465  )
   466  
   467  // Confirmation of a deleted credential.
   468  type BetaManagedAgentsDeletedCredential struct {
   469  	// Unique identifier of the deleted credential.
   470  	ID string `json:"id" api:"required"`
   471  	// Any of "vault_credential_deleted".
   472  	Type BetaManagedAgentsDeletedCredentialType `json:"type" api:"required"`
   473  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   474  	JSON struct {
   475  		ID          respjson.Field
   476  		Type        respjson.Field
   477  		ExtraFields map[string]respjson.Field
   478  		raw         string
   479  	} `json:"-"`
   480  }
   481  
   482  // Returns the unmodified JSON received from the API
   483  func (r BetaManagedAgentsDeletedCredential) RawJSON() string { return r.JSON.raw }
   484  func (r *BetaManagedAgentsDeletedCredential) UnmarshalJSON(data []byte) error {
   485  	return apijson.UnmarshalRoot(data, r)
   486  }
   487  
   488  type BetaManagedAgentsDeletedCredentialType string
   489  
   490  const (
   491  	BetaManagedAgentsDeletedCredentialTypeVaultCredentialDeleted BetaManagedAgentsDeletedCredentialType = "vault_credential_deleted"
   492  )
   493  
   494  // Environment variable credential details. The secret value is never returned.
   495  type BetaManagedAgentsEnvironmentVariableAuthResponse struct {
   496  	// Where in the outbound request the secret value is substituted.
   497  	InjectionLocation BetaManagedAgentsInjectionLocationResponse `json:"injection_location" api:"required"`
   498  	// Outbound hosts the secret value is substituted on.
   499  	Networking BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion `json:"networking" api:"required"`
   500  	// Name of the environment variable.
   501  	SecretName string `json:"secret_name" api:"required"`
   502  	// Any of "environment_variable".
   503  	Type BetaManagedAgentsEnvironmentVariableAuthResponseType `json:"type" api:"required"`
   504  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   505  	JSON struct {
   506  		InjectionLocation respjson.Field
   507  		Networking        respjson.Field
   508  		SecretName        respjson.Field
   509  		Type              respjson.Field
   510  		ExtraFields       map[string]respjson.Field
   511  		raw               string
   512  	} `json:"-"`
   513  }
   514  
   515  // Returns the unmodified JSON received from the API
   516  func (r BetaManagedAgentsEnvironmentVariableAuthResponse) RawJSON() string { return r.JSON.raw }
   517  func (r *BetaManagedAgentsEnvironmentVariableAuthResponse) UnmarshalJSON(data []byte) error {
   518  	return apijson.UnmarshalRoot(data, r)
   519  }
   520  
   521  // BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion contains all
   522  // possible properties and values from
   523  // [BetaManagedAgentsUnrestrictedCredentialNetworkingResponse],
   524  // [BetaManagedAgentsLimitedCredentialNetworkingResponse].
   525  //
   526  // Use the [BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion.AsAny]
   527  // method to switch on the variant.
   528  //
   529  // Use the methods beginning with 'As' to cast the union to one of its variants.
   530  type BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion struct {
   531  	// Any of "unrestricted", "limited".
   532  	Type string `json:"type"`
   533  	// This field is from variant
   534  	// [BetaManagedAgentsLimitedCredentialNetworkingResponse].
   535  	AllowedHosts []string `json:"allowed_hosts"`
   536  	JSON         struct {
   537  		Type         respjson.Field
   538  		AllowedHosts respjson.Field
   539  		raw          string
   540  	} `json:"-"`
   541  }
   542  
   543  // anyBetaManagedAgentsEnvironmentVariableAuthResponseNetworking is implemented by
   544  // each variant of
   545  // [BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion] to add type
   546  // safety for the return type of
   547  // [BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion.AsAny]
   548  type anyBetaManagedAgentsEnvironmentVariableAuthResponseNetworking interface {
   549  	implBetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion()
   550  }
   551  
   552  func (BetaManagedAgentsUnrestrictedCredentialNetworkingResponse) implBetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion() {
   553  }
   554  func (BetaManagedAgentsLimitedCredentialNetworkingResponse) implBetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion() {
   555  }
   556  
   557  // Use the following switch statement to find the correct variant
   558  //
   559  //	switch variant := BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion.AsAny().(type) {
   560  //	case anthropic.BetaManagedAgentsUnrestrictedCredentialNetworkingResponse:
   561  //	case anthropic.BetaManagedAgentsLimitedCredentialNetworkingResponse:
   562  //	default:
   563  //	  fmt.Errorf("no variant present")
   564  //	}
   565  func (u BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion) AsAny() anyBetaManagedAgentsEnvironmentVariableAuthResponseNetworking {
   566  	switch u.Type {
   567  	case "unrestricted":
   568  		return u.AsUnrestricted()
   569  	case "limited":
   570  		return u.AsLimited()
   571  	}
   572  	return nil
   573  }
   574  
   575  func (u BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion) AsUnrestricted() (v BetaManagedAgentsUnrestrictedCredentialNetworkingResponse) {
   576  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   577  	return
   578  }
   579  
   580  func (u BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion) AsLimited() (v BetaManagedAgentsLimitedCredentialNetworkingResponse) {
   581  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   582  	return
   583  }
   584  
   585  // Returns the unmodified JSON received from the API
   586  func (u BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion) RawJSON() string {
   587  	return u.JSON.raw
   588  }
   589  
   590  func (r *BetaManagedAgentsEnvironmentVariableAuthResponseNetworkingUnion) UnmarshalJSON(data []byte) error {
   591  	return apijson.UnmarshalRoot(data, r)
   592  }
   593  
   594  type BetaManagedAgentsEnvironmentVariableAuthResponseType string
   595  
   596  const (
   597  	BetaManagedAgentsEnvironmentVariableAuthResponseTypeEnvironmentVariable BetaManagedAgentsEnvironmentVariableAuthResponseType = "environment_variable"
   598  )
   599  
   600  // Parameters for creating an environment variable credential.
   601  //
   602  // The properties Networking, SecretName, SecretValue, Type are required.
   603  type BetaManagedAgentsEnvironmentVariableCreateParams struct {
   604  	// Outbound hosts the secret value is substituted on.
   605  	Networking BetaManagedAgentsCredentialNetworkingParamsUnion `json:"networking,omitzero" api:"required"`
   606  	// Name of the environment variable. Immutable after create.
   607  	SecretName string `json:"secret_name" api:"required"`
   608  	// Secret value. Write-only; never returned in responses.
   609  	SecretValue string `json:"secret_value" api:"required"`
   610  	// Any of "environment_variable".
   611  	Type BetaManagedAgentsEnvironmentVariableCreateParamsType `json:"type,omitzero" api:"required"`
   612  	// Where in the outbound request the secret value may be substituted.
   613  	InjectionLocation BetaManagedAgentsInjectionLocationParams `json:"injection_location,omitzero"`
   614  	paramObj
   615  }
   616  
   617  func (r BetaManagedAgentsEnvironmentVariableCreateParams) MarshalJSON() (data []byte, err error) {
   618  	type shadow BetaManagedAgentsEnvironmentVariableCreateParams
   619  	return param.MarshalObject(r, (*shadow)(&r))
   620  }
   621  func (r *BetaManagedAgentsEnvironmentVariableCreateParams) UnmarshalJSON(data []byte) error {
   622  	return apijson.UnmarshalRoot(data, r)
   623  }
   624  
   625  type BetaManagedAgentsEnvironmentVariableCreateParamsType string
   626  
   627  const (
   628  	BetaManagedAgentsEnvironmentVariableCreateParamsTypeEnvironmentVariable BetaManagedAgentsEnvironmentVariableCreateParamsType = "environment_variable"
   629  )
   630  
   631  // Parameters for updating an environment variable credential. `secret_name` is
   632  // immutable.
   633  //
   634  // The property Type is required.
   635  type BetaManagedAgentsEnvironmentVariableUpdateParams struct {
   636  	// Any of "environment_variable".
   637  	Type BetaManagedAgentsEnvironmentVariableUpdateParamsType `json:"type,omitzero" api:"required"`
   638  	// Updated secret value.
   639  	SecretValue param.Opt[string] `json:"secret_value,omitzero"`
   640  	// Updated injection location.
   641  	InjectionLocation BetaManagedAgentsInjectionLocationUpdateParams `json:"injection_location,omitzero"`
   642  	// Updated networking scope. Full replacement.
   643  	Networking BetaManagedAgentsCredentialNetworkingParamsUnion `json:"networking,omitzero"`
   644  	paramObj
   645  }
   646  
   647  func (r BetaManagedAgentsEnvironmentVariableUpdateParams) MarshalJSON() (data []byte, err error) {
   648  	type shadow BetaManagedAgentsEnvironmentVariableUpdateParams
   649  	return param.MarshalObject(r, (*shadow)(&r))
   650  }
   651  func (r *BetaManagedAgentsEnvironmentVariableUpdateParams) UnmarshalJSON(data []byte) error {
   652  	return apijson.UnmarshalRoot(data, r)
   653  }
   654  
   655  type BetaManagedAgentsEnvironmentVariableUpdateParamsType string
   656  
   657  const (
   658  	BetaManagedAgentsEnvironmentVariableUpdateParamsTypeEnvironmentVariable BetaManagedAgentsEnvironmentVariableUpdateParamsType = "environment_variable"
   659  )
   660  
   661  // Where in the outbound request the secret value may be substituted.
   662  type BetaManagedAgentsInjectionLocationParams struct {
   663  	// Substitute when the placeholder appears in the request body.
   664  	Body param.Opt[bool] `json:"body,omitzero"`
   665  	// Substitute when the placeholder appears in a request header value.
   666  	Header param.Opt[bool] `json:"header,omitzero"`
   667  	paramObj
   668  }
   669  
   670  func (r BetaManagedAgentsInjectionLocationParams) MarshalJSON() (data []byte, err error) {
   671  	type shadow BetaManagedAgentsInjectionLocationParams
   672  	return param.MarshalObject(r, (*shadow)(&r))
   673  }
   674  func (r *BetaManagedAgentsInjectionLocationParams) UnmarshalJSON(data []byte) error {
   675  	return apijson.UnmarshalRoot(data, r)
   676  }
   677  
   678  // Where in the outbound request the secret value is substituted.
   679  type BetaManagedAgentsInjectionLocationResponse struct {
   680  	// Whether the placeholder is substituted in the request body.
   681  	Body bool `json:"body" api:"required"`
   682  	// Whether the placeholder is substituted in request header values.
   683  	Header bool `json:"header" api:"required"`
   684  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   685  	JSON struct {
   686  		Body        respjson.Field
   687  		Header      respjson.Field
   688  		ExtraFields map[string]respjson.Field
   689  		raw         string
   690  	} `json:"-"`
   691  }
   692  
   693  // Returns the unmodified JSON received from the API
   694  func (r BetaManagedAgentsInjectionLocationResponse) RawJSON() string { return r.JSON.raw }
   695  func (r *BetaManagedAgentsInjectionLocationResponse) UnmarshalJSON(data []byte) error {
   696  	return apijson.UnmarshalRoot(data, r)
   697  }
   698  
   699  // Updated injection location.
   700  type BetaManagedAgentsInjectionLocationUpdateParams struct {
   701  	// Substitute when the placeholder appears in the request body.
   702  	Body param.Opt[bool] `json:"body,omitzero"`
   703  	// Substitute when the placeholder appears in a request header value.
   704  	Header param.Opt[bool] `json:"header,omitzero"`
   705  	paramObj
   706  }
   707  
   708  func (r BetaManagedAgentsInjectionLocationUpdateParams) MarshalJSON() (data []byte, err error) {
   709  	type shadow BetaManagedAgentsInjectionLocationUpdateParams
   710  	return param.MarshalObject(r, (*shadow)(&r))
   711  }
   712  func (r *BetaManagedAgentsInjectionLocationUpdateParams) UnmarshalJSON(data []byte) error {
   713  	return apijson.UnmarshalRoot(data, r)
   714  }
   715  
   716  // Substitute the secret only on requests to the listed hosts.
   717  //
   718  // The properties AllowedHosts, Type are required.
   719  type BetaManagedAgentsLimitedCredentialNetworkingParams struct {
   720  	// Hostnames on which the secret will be substituted. Each entry is a bare hostname
   721  	// (`api.example.com`), an IPv4 address (`192.0.2.1`), or a `*.`-prefixed wildcard
   722  	// (`*.example.com`). URLs, ports, paths, and IPv6 addresses are not accepted. At
   723  	// most 16 entries.
   724  	AllowedHosts []string `json:"allowed_hosts,omitzero" api:"required"`
   725  	// Any of "limited".
   726  	Type BetaManagedAgentsLimitedCredentialNetworkingParamsType `json:"type,omitzero" api:"required"`
   727  	paramObj
   728  }
   729  
   730  func (r BetaManagedAgentsLimitedCredentialNetworkingParams) MarshalJSON() (data []byte, err error) {
   731  	type shadow BetaManagedAgentsLimitedCredentialNetworkingParams
   732  	return param.MarshalObject(r, (*shadow)(&r))
   733  }
   734  func (r *BetaManagedAgentsLimitedCredentialNetworkingParams) UnmarshalJSON(data []byte) error {
   735  	return apijson.UnmarshalRoot(data, r)
   736  }
   737  
   738  type BetaManagedAgentsLimitedCredentialNetworkingParamsType string
   739  
   740  const (
   741  	BetaManagedAgentsLimitedCredentialNetworkingParamsTypeLimited BetaManagedAgentsLimitedCredentialNetworkingParamsType = "limited"
   742  )
   743  
   744  // The secret is substituted only on requests to the listed hosts.
   745  type BetaManagedAgentsLimitedCredentialNetworkingResponse struct {
   746  	// Hostnames on which the secret will be substituted. An entry matches the request
   747  	// host exactly; a `*.`-prefixed entry matches any subdomain of the named domain
   748  	// but not the domain itself.
   749  	AllowedHosts []string `json:"allowed_hosts" api:"required"`
   750  	// Any of "limited".
   751  	Type BetaManagedAgentsLimitedCredentialNetworkingResponseType `json:"type" api:"required"`
   752  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   753  	JSON struct {
   754  		AllowedHosts respjson.Field
   755  		Type         respjson.Field
   756  		ExtraFields  map[string]respjson.Field
   757  		raw          string
   758  	} `json:"-"`
   759  }
   760  
   761  // Returns the unmodified JSON received from the API
   762  func (r BetaManagedAgentsLimitedCredentialNetworkingResponse) RawJSON() string { return r.JSON.raw }
   763  func (r *BetaManagedAgentsLimitedCredentialNetworkingResponse) UnmarshalJSON(data []byte) error {
   764  	return apijson.UnmarshalRoot(data, r)
   765  }
   766  
   767  type BetaManagedAgentsLimitedCredentialNetworkingResponseType string
   768  
   769  const (
   770  	BetaManagedAgentsLimitedCredentialNetworkingResponseTypeLimited BetaManagedAgentsLimitedCredentialNetworkingResponseType = "limited"
   771  )
   772  
   773  // OAuth credential details for an MCP server.
   774  type BetaManagedAgentsMCPOAuthAuthResponse struct {
   775  	// URL of the MCP server this credential authenticates against.
   776  	MCPServerURL string `json:"mcp_server_url" api:"required"`
   777  	// Any of "mcp_oauth".
   778  	Type BetaManagedAgentsMCPOAuthAuthResponseType `json:"type" api:"required"`
   779  	// A timestamp in RFC 3339 format
   780  	ExpiresAt time.Time `json:"expires_at" api:"nullable" format:"date-time"`
   781  	// OAuth refresh token configuration returned in credential responses.
   782  	Refresh BetaManagedAgentsMCPOAuthRefreshResponse `json:"refresh" api:"nullable"`
   783  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   784  	JSON struct {
   785  		MCPServerURL respjson.Field
   786  		Type         respjson.Field
   787  		ExpiresAt    respjson.Field
   788  		Refresh      respjson.Field
   789  		ExtraFields  map[string]respjson.Field
   790  		raw          string
   791  	} `json:"-"`
   792  }
   793  
   794  // Returns the unmodified JSON received from the API
   795  func (r BetaManagedAgentsMCPOAuthAuthResponse) RawJSON() string { return r.JSON.raw }
   796  func (r *BetaManagedAgentsMCPOAuthAuthResponse) UnmarshalJSON(data []byte) error {
   797  	return apijson.UnmarshalRoot(data, r)
   798  }
   799  
   800  type BetaManagedAgentsMCPOAuthAuthResponseType string
   801  
   802  const (
   803  	BetaManagedAgentsMCPOAuthAuthResponseTypeMCPOAuth BetaManagedAgentsMCPOAuthAuthResponseType = "mcp_oauth"
   804  )
   805  
   806  // Parameters for creating an MCP OAuth credential.
   807  //
   808  // The properties AccessToken, MCPServerURL, Type are required.
   809  type BetaManagedAgentsMCPOAuthCreateParams struct {
   810  	// OAuth access token.
   811  	AccessToken string `json:"access_token" api:"required"`
   812  	// URL of the MCP server this credential authenticates against.
   813  	MCPServerURL string `json:"mcp_server_url" api:"required"`
   814  	// Any of "mcp_oauth".
   815  	Type BetaManagedAgentsMCPOAuthCreateParamsType `json:"type,omitzero" api:"required"`
   816  	// A timestamp in RFC 3339 format
   817  	ExpiresAt param.Opt[time.Time] `json:"expires_at,omitzero" format:"date-time"`
   818  	// OAuth refresh token parameters for creating a credential with refresh support.
   819  	Refresh BetaManagedAgentsMCPOAuthRefreshParams `json:"refresh,omitzero"`
   820  	paramObj
   821  }
   822  
   823  func (r BetaManagedAgentsMCPOAuthCreateParams) MarshalJSON() (data []byte, err error) {
   824  	type shadow BetaManagedAgentsMCPOAuthCreateParams
   825  	return param.MarshalObject(r, (*shadow)(&r))
   826  }
   827  func (r *BetaManagedAgentsMCPOAuthCreateParams) UnmarshalJSON(data []byte) error {
   828  	return apijson.UnmarshalRoot(data, r)
   829  }
   830  
   831  type BetaManagedAgentsMCPOAuthCreateParamsType string
   832  
   833  const (
   834  	BetaManagedAgentsMCPOAuthCreateParamsTypeMCPOAuth BetaManagedAgentsMCPOAuthCreateParamsType = "mcp_oauth"
   835  )
   836  
   837  // OAuth refresh token parameters for creating a credential with refresh support.
   838  //
   839  // The properties ClientID, RefreshToken, TokenEndpoint, TokenEndpointAuth are
   840  // required.
   841  type BetaManagedAgentsMCPOAuthRefreshParams struct {
   842  	// OAuth client ID.
   843  	ClientID string `json:"client_id" api:"required"`
   844  	// OAuth refresh token.
   845  	RefreshToken string `json:"refresh_token" api:"required"`
   846  	// Token endpoint URL used to refresh the access token.
   847  	TokenEndpoint string `json:"token_endpoint" api:"required"`
   848  	// Token endpoint requires no client authentication.
   849  	TokenEndpointAuth BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion `json:"token_endpoint_auth,omitzero" api:"required"`
   850  	// OAuth resource indicator.
   851  	Resource param.Opt[string] `json:"resource,omitzero"`
   852  	// OAuth scope for the refresh request.
   853  	Scope param.Opt[string] `json:"scope,omitzero"`
   854  	paramObj
   855  }
   856  
   857  func (r BetaManagedAgentsMCPOAuthRefreshParams) MarshalJSON() (data []byte, err error) {
   858  	type shadow BetaManagedAgentsMCPOAuthRefreshParams
   859  	return param.MarshalObject(r, (*shadow)(&r))
   860  }
   861  func (r *BetaManagedAgentsMCPOAuthRefreshParams) UnmarshalJSON(data []byte) error {
   862  	return apijson.UnmarshalRoot(data, r)
   863  }
   864  
   865  // Only one field can be non-zero.
   866  //
   867  // Use [param.IsOmitted] to confirm if a field is set.
   868  type BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion struct {
   869  	OfNone              *BetaManagedAgentsTokenEndpointAuthNoneParam  `json:",omitzero,inline"`
   870  	OfClientSecretBasic *BetaManagedAgentsTokenEndpointAuthBasicParam `json:",omitzero,inline"`
   871  	OfClientSecretPost  *BetaManagedAgentsTokenEndpointAuthPostParam  `json:",omitzero,inline"`
   872  	paramUnion
   873  }
   874  
   875  func (u BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion) MarshalJSON() ([]byte, error) {
   876  	return param.MarshalUnion(u, u.OfNone, u.OfClientSecretBasic, u.OfClientSecretPost)
   877  }
   878  func (u *BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion) UnmarshalJSON(data []byte) error {
   879  	return apijson.UnmarshalRoot(data, u)
   880  }
   881  
   882  func (u *BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion) asAny() any {
   883  	if !param.IsOmitted(u.OfNone) {
   884  		return u.OfNone
   885  	} else if !param.IsOmitted(u.OfClientSecretBasic) {
   886  		return u.OfClientSecretBasic
   887  	} else if !param.IsOmitted(u.OfClientSecretPost) {
   888  		return u.OfClientSecretPost
   889  	}
   890  	return nil
   891  }
   892  
   893  // Returns a pointer to the underlying variant's property, if present.
   894  func (u BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion) GetType() *string {
   895  	if vt := u.OfNone; vt != nil {
   896  		return (*string)(&vt.Type)
   897  	} else if vt := u.OfClientSecretBasic; vt != nil {
   898  		return (*string)(&vt.Type)
   899  	} else if vt := u.OfClientSecretPost; vt != nil {
   900  		return (*string)(&vt.Type)
   901  	}
   902  	return nil
   903  }
   904  
   905  // Returns a pointer to the underlying variant's property, if present.
   906  func (u BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion) GetClientSecret() *string {
   907  	if vt := u.OfClientSecretBasic; vt != nil {
   908  		return (*string)(&vt.ClientSecret)
   909  	} else if vt := u.OfClientSecretPost; vt != nil {
   910  		return (*string)(&vt.ClientSecret)
   911  	}
   912  	return nil
   913  }
   914  
   915  func init() {
   916  	apijson.RegisterUnion[BetaManagedAgentsMCPOAuthRefreshParamsTokenEndpointAuthUnion](
   917  		"type",
   918  		apijson.Discriminator[BetaManagedAgentsTokenEndpointAuthNoneParam]("none"),
   919  		apijson.Discriminator[BetaManagedAgentsTokenEndpointAuthBasicParam]("client_secret_basic"),
   920  		apijson.Discriminator[BetaManagedAgentsTokenEndpointAuthPostParam]("client_secret_post"),
   921  	)
   922  }
   923  
   924  // OAuth refresh token configuration returned in credential responses.
   925  type BetaManagedAgentsMCPOAuthRefreshResponse struct {
   926  	// OAuth client ID.
   927  	ClientID string `json:"client_id" api:"required"`
   928  	// Token endpoint URL used to refresh the access token.
   929  	TokenEndpoint string `json:"token_endpoint" api:"required"`
   930  	// Token endpoint requires no client authentication.
   931  	TokenEndpointAuth BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion `json:"token_endpoint_auth" api:"required"`
   932  	// OAuth resource indicator.
   933  	Resource string `json:"resource" api:"nullable"`
   934  	// OAuth scope for the refresh request.
   935  	Scope string `json:"scope" api:"nullable"`
   936  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   937  	JSON struct {
   938  		ClientID          respjson.Field
   939  		TokenEndpoint     respjson.Field
   940  		TokenEndpointAuth respjson.Field
   941  		Resource          respjson.Field
   942  		Scope             respjson.Field
   943  		ExtraFields       map[string]respjson.Field
   944  		raw               string
   945  	} `json:"-"`
   946  }
   947  
   948  // Returns the unmodified JSON received from the API
   949  func (r BetaManagedAgentsMCPOAuthRefreshResponse) RawJSON() string { return r.JSON.raw }
   950  func (r *BetaManagedAgentsMCPOAuthRefreshResponse) UnmarshalJSON(data []byte) error {
   951  	return apijson.UnmarshalRoot(data, r)
   952  }
   953  
   954  // BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion contains all
   955  // possible properties and values from
   956  // [BetaManagedAgentsTokenEndpointAuthNoneResponse],
   957  // [BetaManagedAgentsTokenEndpointAuthBasicResponse],
   958  // [BetaManagedAgentsTokenEndpointAuthPostResponse].
   959  //
   960  // Use the [BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion.AsAny]
   961  // method to switch on the variant.
   962  //
   963  // Use the methods beginning with 'As' to cast the union to one of its variants.
   964  type BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion struct {
   965  	// Any of "none", "client_secret_basic", "client_secret_post".
   966  	Type string `json:"type"`
   967  	JSON struct {
   968  		Type respjson.Field
   969  		raw  string
   970  	} `json:"-"`
   971  }
   972  
   973  // anyBetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuth is implemented by
   974  // each variant of [BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion]
   975  // to add type safety for the return type of
   976  // [BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion.AsAny]
   977  type anyBetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuth interface {
   978  	implBetaManagedAgentsMcpoAuthRefreshResponseTokenEndpointAuthUnion()
   979  }
   980  
   981  func (BetaManagedAgentsTokenEndpointAuthNoneResponse) implBetaManagedAgentsMcpoAuthRefreshResponseTokenEndpointAuthUnion() {
   982  }
   983  func (BetaManagedAgentsTokenEndpointAuthBasicResponse) implBetaManagedAgentsMcpoAuthRefreshResponseTokenEndpointAuthUnion() {
   984  }
   985  func (BetaManagedAgentsTokenEndpointAuthPostResponse) implBetaManagedAgentsMcpoAuthRefreshResponseTokenEndpointAuthUnion() {
   986  }
   987  
   988  // Use the following switch statement to find the correct variant
   989  //
   990  //	switch variant := BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion.AsAny().(type) {
   991  //	case anthropic.BetaManagedAgentsTokenEndpointAuthNoneResponse:
   992  //	case anthropic.BetaManagedAgentsTokenEndpointAuthBasicResponse:
   993  //	case anthropic.BetaManagedAgentsTokenEndpointAuthPostResponse:
   994  //	default:
   995  //	  fmt.Errorf("no variant present")
   996  //	}
   997  func (u BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion) AsAny() anyBetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuth {
   998  	switch u.Type {
   999  	case "none":
  1000  		return u.AsNone()
  1001  	case "client_secret_basic":
  1002  		return u.AsClientSecretBasic()
  1003  	case "client_secret_post":
  1004  		return u.AsClientSecretPost()
  1005  	}
  1006  	return nil
  1007  }
  1008  
  1009  func (u BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion) AsNone() (v BetaManagedAgentsTokenEndpointAuthNoneResponse) {
  1010  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
  1011  	return
  1012  }
  1013  
  1014  func (u BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion) AsClientSecretBasic() (v BetaManagedAgentsTokenEndpointAuthBasicResponse) {
  1015  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
  1016  	return
  1017  }
  1018  
  1019  func (u BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion) AsClientSecretPost() (v BetaManagedAgentsTokenEndpointAuthPostResponse) {
  1020  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
  1021  	return
  1022  }
  1023  
  1024  // Returns the unmodified JSON received from the API
  1025  func (u BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion) RawJSON() string {
  1026  	return u.JSON.raw
  1027  }
  1028  
  1029  func (r *BetaManagedAgentsMCPOAuthRefreshResponseTokenEndpointAuthUnion) UnmarshalJSON(data []byte) error {
  1030  	return apijson.UnmarshalRoot(data, r)
  1031  }
  1032  
  1033  // Parameters for updating OAuth refresh token configuration.
  1034  type BetaManagedAgentsMCPOAuthRefreshUpdateParams struct {
  1035  	// Updated OAuth refresh token.
  1036  	RefreshToken param.Opt[string] `json:"refresh_token,omitzero"`
  1037  	// Updated OAuth scope for the refresh request.
  1038  	Scope param.Opt[string] `json:"scope,omitzero"`
  1039  	// Updated HTTP Basic authentication parameters for the token endpoint.
  1040  	TokenEndpointAuth BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion `json:"token_endpoint_auth,omitzero"`
  1041  	paramObj
  1042  }
  1043  
  1044  func (r BetaManagedAgentsMCPOAuthRefreshUpdateParams) MarshalJSON() (data []byte, err error) {
  1045  	type shadow BetaManagedAgentsMCPOAuthRefreshUpdateParams
  1046  	return param.MarshalObject(r, (*shadow)(&r))
  1047  }
  1048  func (r *BetaManagedAgentsMCPOAuthRefreshUpdateParams) UnmarshalJSON(data []byte) error {
  1049  	return apijson.UnmarshalRoot(data, r)
  1050  }
  1051  
  1052  // Only one field can be non-zero.
  1053  //
  1054  // Use [param.IsOmitted] to confirm if a field is set.
  1055  type BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion struct {
  1056  	OfClientSecretBasic *BetaManagedAgentsTokenEndpointAuthBasicUpdateParam `json:",omitzero,inline"`
  1057  	OfClientSecretPost  *BetaManagedAgentsTokenEndpointAuthPostUpdateParam  `json:",omitzero,inline"`
  1058  	paramUnion
  1059  }
  1060  
  1061  func (u BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion) MarshalJSON() ([]byte, error) {
  1062  	return param.MarshalUnion(u, u.OfClientSecretBasic, u.OfClientSecretPost)
  1063  }
  1064  func (u *BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion) UnmarshalJSON(data []byte) error {
  1065  	return apijson.UnmarshalRoot(data, u)
  1066  }
  1067  
  1068  func (u *BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion) asAny() any {
  1069  	if !param.IsOmitted(u.OfClientSecretBasic) {
  1070  		return u.OfClientSecretBasic
  1071  	} else if !param.IsOmitted(u.OfClientSecretPost) {
  1072  		return u.OfClientSecretPost
  1073  	}
  1074  	return nil
  1075  }
  1076  
  1077  // Returns a pointer to the underlying variant's property, if present.
  1078  func (u BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion) GetType() *string {
  1079  	if vt := u.OfClientSecretBasic; vt != nil {
  1080  		return (*string)(&vt.Type)
  1081  	} else if vt := u.OfClientSecretPost; vt != nil {
  1082  		return (*string)(&vt.Type)
  1083  	}
  1084  	return nil
  1085  }
  1086  
  1087  // Returns a pointer to the underlying variant's property, if present.
  1088  func (u BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion) GetClientSecret() *string {
  1089  	if vt := u.OfClientSecretBasic; vt != nil && vt.ClientSecret.Valid() {
  1090  		return &vt.ClientSecret.Value
  1091  	} else if vt := u.OfClientSecretPost; vt != nil && vt.ClientSecret.Valid() {
  1092  		return &vt.ClientSecret.Value
  1093  	}
  1094  	return nil
  1095  }
  1096  
  1097  func init() {
  1098  	apijson.RegisterUnion[BetaManagedAgentsMCPOAuthRefreshUpdateParamsTokenEndpointAuthUnion](
  1099  		"type",
  1100  		apijson.Discriminator[BetaManagedAgentsTokenEndpointAuthBasicUpdateParam]("client_secret_basic"),
  1101  		apijson.Discriminator[BetaManagedAgentsTokenEndpointAuthPostUpdateParam]("client_secret_post"),
  1102  	)
  1103  }
  1104  
  1105  // Parameters for updating an MCP OAuth credential. The `mcp_server_url` is
  1106  // immutable.
  1107  //
  1108  // The property Type is required.
  1109  type BetaManagedAgentsMCPOAuthUpdateParams struct {
  1110  	// Any of "mcp_oauth".
  1111  	Type BetaManagedAgentsMCPOAuthUpdateParamsType `json:"type,omitzero" api:"required"`
  1112  	// Updated OAuth access token.
  1113  	AccessToken param.Opt[string] `json:"access_token,omitzero"`
  1114  	// A timestamp in RFC 3339 format
  1115  	ExpiresAt param.Opt[time.Time] `json:"expires_at,omitzero" format:"date-time"`
  1116  	// Parameters for updating OAuth refresh token configuration.
  1117  	Refresh BetaManagedAgentsMCPOAuthRefreshUpdateParams `json:"refresh,omitzero"`
  1118  	paramObj
  1119  }
  1120  
  1121  func (r BetaManagedAgentsMCPOAuthUpdateParams) MarshalJSON() (data []byte, err error) {
  1122  	type shadow BetaManagedAgentsMCPOAuthUpdateParams
  1123  	return param.MarshalObject(r, (*shadow)(&r))
  1124  }
  1125  func (r *BetaManagedAgentsMCPOAuthUpdateParams) UnmarshalJSON(data []byte) error {
  1126  	return apijson.UnmarshalRoot(data, r)
  1127  }
  1128  
  1129  type BetaManagedAgentsMCPOAuthUpdateParamsType string
  1130  
  1131  const (
  1132  	BetaManagedAgentsMCPOAuthUpdateParamsTypeMCPOAuth BetaManagedAgentsMCPOAuthUpdateParamsType = "mcp_oauth"
  1133  )
  1134  
  1135  // The failing step of an MCP validation probe.
  1136  type BetaManagedAgentsMCPProbe struct {
  1137  	// An HTTP response captured during a credential validation probe.
  1138  	HTTPResponse BetaManagedAgentsRefreshHTTPResponse `json:"http_response" api:"required"`
  1139  	// The MCP method that failed (for example `initialize` or `tools/list`).
  1140  	Method string `json:"method" api:"required"`
  1141  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1142  	JSON struct {
  1143  		HTTPResponse respjson.Field
  1144  		Method       respjson.Field
  1145  		ExtraFields  map[string]respjson.Field
  1146  		raw          string
  1147  	} `json:"-"`
  1148  }
  1149  
  1150  // Returns the unmodified JSON received from the API
  1151  func (r BetaManagedAgentsMCPProbe) RawJSON() string { return r.JSON.raw }
  1152  func (r *BetaManagedAgentsMCPProbe) UnmarshalJSON(data []byte) error {
  1153  	return apijson.UnmarshalRoot(data, r)
  1154  }
  1155  
  1156  // An HTTP response captured during a credential validation probe.
  1157  type BetaManagedAgentsRefreshHTTPResponse struct {
  1158  	// Response body. May be truncated and has sensitive values scrubbed.
  1159  	Body string `json:"body" api:"required"`
  1160  	// Whether `body` was truncated.
  1161  	BodyTruncated bool `json:"body_truncated" api:"required"`
  1162  	// Value of the `Content-Type` response header.
  1163  	ContentType string `json:"content_type" api:"required"`
  1164  	// HTTP status code.
  1165  	StatusCode int64 `json:"status_code" api:"required"`
  1166  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1167  	JSON struct {
  1168  		Body          respjson.Field
  1169  		BodyTruncated respjson.Field
  1170  		ContentType   respjson.Field
  1171  		StatusCode    respjson.Field
  1172  		ExtraFields   map[string]respjson.Field
  1173  		raw           string
  1174  	} `json:"-"`
  1175  }
  1176  
  1177  // Returns the unmodified JSON received from the API
  1178  func (r BetaManagedAgentsRefreshHTTPResponse) RawJSON() string { return r.JSON.raw }
  1179  func (r *BetaManagedAgentsRefreshHTTPResponse) UnmarshalJSON(data []byte) error {
  1180  	return apijson.UnmarshalRoot(data, r)
  1181  }
  1182  
  1183  // Outcome of a refresh-token exchange attempted during credential validation.
  1184  type BetaManagedAgentsRefreshObject struct {
  1185  	// An HTTP response captured during a credential validation probe.
  1186  	HTTPResponse BetaManagedAgentsRefreshHTTPResponse `json:"http_response" api:"required"`
  1187  	// Outcome of a refresh-token exchange attempted during credential validation.
  1188  	//
  1189  	// Any of "succeeded", "failed", "connect_error", "no_refresh_token".
  1190  	Status BetaManagedAgentsRefreshObjectStatus `json:"status" api:"required"`
  1191  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1192  	JSON struct {
  1193  		HTTPResponse respjson.Field
  1194  		Status       respjson.Field
  1195  		ExtraFields  map[string]respjson.Field
  1196  		raw          string
  1197  	} `json:"-"`
  1198  }
  1199  
  1200  // Returns the unmodified JSON received from the API
  1201  func (r BetaManagedAgentsRefreshObject) RawJSON() string { return r.JSON.raw }
  1202  func (r *BetaManagedAgentsRefreshObject) UnmarshalJSON(data []byte) error {
  1203  	return apijson.UnmarshalRoot(data, r)
  1204  }
  1205  
  1206  // Outcome of a refresh-token exchange attempted during credential validation.
  1207  type BetaManagedAgentsRefreshObjectStatus string
  1208  
  1209  const (
  1210  	BetaManagedAgentsRefreshObjectStatusSucceeded      BetaManagedAgentsRefreshObjectStatus = "succeeded"
  1211  	BetaManagedAgentsRefreshObjectStatusFailed         BetaManagedAgentsRefreshObjectStatus = "failed"
  1212  	BetaManagedAgentsRefreshObjectStatusConnectError   BetaManagedAgentsRefreshObjectStatus = "connect_error"
  1213  	BetaManagedAgentsRefreshObjectStatusNoRefreshToken BetaManagedAgentsRefreshObjectStatus = "no_refresh_token"
  1214  )
  1215  
  1216  // Static bearer token credential details for an MCP server.
  1217  type BetaManagedAgentsStaticBearerAuthResponse struct {
  1218  	// URL of the MCP server this credential authenticates against.
  1219  	MCPServerURL string `json:"mcp_server_url" api:"required"`
  1220  	// Any of "static_bearer".
  1221  	Type BetaManagedAgentsStaticBearerAuthResponseType `json:"type" api:"required"`
  1222  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1223  	JSON struct {
  1224  		MCPServerURL respjson.Field
  1225  		Type         respjson.Field
  1226  		ExtraFields  map[string]respjson.Field
  1227  		raw          string
  1228  	} `json:"-"`
  1229  }
  1230  
  1231  // Returns the unmodified JSON received from the API
  1232  func (r BetaManagedAgentsStaticBearerAuthResponse) RawJSON() string { return r.JSON.raw }
  1233  func (r *BetaManagedAgentsStaticBearerAuthResponse) UnmarshalJSON(data []byte) error {
  1234  	return apijson.UnmarshalRoot(data, r)
  1235  }
  1236  
  1237  type BetaManagedAgentsStaticBearerAuthResponseType string
  1238  
  1239  const (
  1240  	BetaManagedAgentsStaticBearerAuthResponseTypeStaticBearer BetaManagedAgentsStaticBearerAuthResponseType = "static_bearer"
  1241  )
  1242  
  1243  // Parameters for creating a static bearer token credential.
  1244  //
  1245  // The properties Token, MCPServerURL, Type are required.
  1246  type BetaManagedAgentsStaticBearerCreateParams struct {
  1247  	// Static bearer token value.
  1248  	Token string `json:"token" api:"required"`
  1249  	// URL of the MCP server this credential authenticates against.
  1250  	MCPServerURL string `json:"mcp_server_url" api:"required"`
  1251  	// Any of "static_bearer".
  1252  	Type BetaManagedAgentsStaticBearerCreateParamsType `json:"type,omitzero" api:"required"`
  1253  	paramObj
  1254  }
  1255  
  1256  func (r BetaManagedAgentsStaticBearerCreateParams) MarshalJSON() (data []byte, err error) {
  1257  	type shadow BetaManagedAgentsStaticBearerCreateParams
  1258  	return param.MarshalObject(r, (*shadow)(&r))
  1259  }
  1260  func (r *BetaManagedAgentsStaticBearerCreateParams) UnmarshalJSON(data []byte) error {
  1261  	return apijson.UnmarshalRoot(data, r)
  1262  }
  1263  
  1264  type BetaManagedAgentsStaticBearerCreateParamsType string
  1265  
  1266  const (
  1267  	BetaManagedAgentsStaticBearerCreateParamsTypeStaticBearer BetaManagedAgentsStaticBearerCreateParamsType = "static_bearer"
  1268  )
  1269  
  1270  // Parameters for updating a static bearer token credential. The `mcp_server_url`
  1271  // is immutable.
  1272  //
  1273  // The property Type is required.
  1274  type BetaManagedAgentsStaticBearerUpdateParams struct {
  1275  	// Any of "static_bearer".
  1276  	Type BetaManagedAgentsStaticBearerUpdateParamsType `json:"type,omitzero" api:"required"`
  1277  	// Updated static bearer token value.
  1278  	Token param.Opt[string] `json:"token,omitzero"`
  1279  	paramObj
  1280  }
  1281  
  1282  func (r BetaManagedAgentsStaticBearerUpdateParams) MarshalJSON() (data []byte, err error) {
  1283  	type shadow BetaManagedAgentsStaticBearerUpdateParams
  1284  	return param.MarshalObject(r, (*shadow)(&r))
  1285  }
  1286  func (r *BetaManagedAgentsStaticBearerUpdateParams) UnmarshalJSON(data []byte) error {
  1287  	return apijson.UnmarshalRoot(data, r)
  1288  }
  1289  
  1290  type BetaManagedAgentsStaticBearerUpdateParamsType string
  1291  
  1292  const (
  1293  	BetaManagedAgentsStaticBearerUpdateParamsTypeStaticBearer BetaManagedAgentsStaticBearerUpdateParamsType = "static_bearer"
  1294  )
  1295  
  1296  // Token endpoint uses HTTP Basic authentication with client credentials.
  1297  //
  1298  // The properties ClientSecret, Type are required.
  1299  type BetaManagedAgentsTokenEndpointAuthBasicParam struct {
  1300  	// OAuth client secret.
  1301  	ClientSecret string `json:"client_secret" api:"required"`
  1302  	// Any of "client_secret_basic".
  1303  	Type BetaManagedAgentsTokenEndpointAuthBasicParamType `json:"type,omitzero" api:"required"`
  1304  	paramObj
  1305  }
  1306  
  1307  func (r BetaManagedAgentsTokenEndpointAuthBasicParam) MarshalJSON() (data []byte, err error) {
  1308  	type shadow BetaManagedAgentsTokenEndpointAuthBasicParam
  1309  	return param.MarshalObject(r, (*shadow)(&r))
  1310  }
  1311  func (r *BetaManagedAgentsTokenEndpointAuthBasicParam) UnmarshalJSON(data []byte) error {
  1312  	return apijson.UnmarshalRoot(data, r)
  1313  }
  1314  
  1315  type BetaManagedAgentsTokenEndpointAuthBasicParamType string
  1316  
  1317  const (
  1318  	BetaManagedAgentsTokenEndpointAuthBasicParamTypeClientSecretBasic BetaManagedAgentsTokenEndpointAuthBasicParamType = "client_secret_basic"
  1319  )
  1320  
  1321  // Token endpoint uses HTTP Basic authentication with client credentials.
  1322  type BetaManagedAgentsTokenEndpointAuthBasicResponse struct {
  1323  	// Any of "client_secret_basic".
  1324  	Type BetaManagedAgentsTokenEndpointAuthBasicResponseType `json:"type" api:"required"`
  1325  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1326  	JSON struct {
  1327  		Type        respjson.Field
  1328  		ExtraFields map[string]respjson.Field
  1329  		raw         string
  1330  	} `json:"-"`
  1331  }
  1332  
  1333  // Returns the unmodified JSON received from the API
  1334  func (r BetaManagedAgentsTokenEndpointAuthBasicResponse) RawJSON() string { return r.JSON.raw }
  1335  func (r *BetaManagedAgentsTokenEndpointAuthBasicResponse) UnmarshalJSON(data []byte) error {
  1336  	return apijson.UnmarshalRoot(data, r)
  1337  }
  1338  
  1339  type BetaManagedAgentsTokenEndpointAuthBasicResponseType string
  1340  
  1341  const (
  1342  	BetaManagedAgentsTokenEndpointAuthBasicResponseTypeClientSecretBasic BetaManagedAgentsTokenEndpointAuthBasicResponseType = "client_secret_basic"
  1343  )
  1344  
  1345  // Updated HTTP Basic authentication parameters for the token endpoint.
  1346  //
  1347  // The property Type is required.
  1348  type BetaManagedAgentsTokenEndpointAuthBasicUpdateParam struct {
  1349  	// Any of "client_secret_basic".
  1350  	Type BetaManagedAgentsTokenEndpointAuthBasicUpdateParamType `json:"type,omitzero" api:"required"`
  1351  	// Updated OAuth client secret.
  1352  	ClientSecret param.Opt[string] `json:"client_secret,omitzero"`
  1353  	paramObj
  1354  }
  1355  
  1356  func (r BetaManagedAgentsTokenEndpointAuthBasicUpdateParam) MarshalJSON() (data []byte, err error) {
  1357  	type shadow BetaManagedAgentsTokenEndpointAuthBasicUpdateParam
  1358  	return param.MarshalObject(r, (*shadow)(&r))
  1359  }
  1360  func (r *BetaManagedAgentsTokenEndpointAuthBasicUpdateParam) UnmarshalJSON(data []byte) error {
  1361  	return apijson.UnmarshalRoot(data, r)
  1362  }
  1363  
  1364  type BetaManagedAgentsTokenEndpointAuthBasicUpdateParamType string
  1365  
  1366  const (
  1367  	BetaManagedAgentsTokenEndpointAuthBasicUpdateParamTypeClientSecretBasic BetaManagedAgentsTokenEndpointAuthBasicUpdateParamType = "client_secret_basic"
  1368  )
  1369  
  1370  // Token endpoint requires no client authentication.
  1371  //
  1372  // The property Type is required.
  1373  type BetaManagedAgentsTokenEndpointAuthNoneParam struct {
  1374  	// Any of "none".
  1375  	Type BetaManagedAgentsTokenEndpointAuthNoneParamType `json:"type,omitzero" api:"required"`
  1376  	paramObj
  1377  }
  1378  
  1379  func (r BetaManagedAgentsTokenEndpointAuthNoneParam) MarshalJSON() (data []byte, err error) {
  1380  	type shadow BetaManagedAgentsTokenEndpointAuthNoneParam
  1381  	return param.MarshalObject(r, (*shadow)(&r))
  1382  }
  1383  func (r *BetaManagedAgentsTokenEndpointAuthNoneParam) UnmarshalJSON(data []byte) error {
  1384  	return apijson.UnmarshalRoot(data, r)
  1385  }
  1386  
  1387  type BetaManagedAgentsTokenEndpointAuthNoneParamType string
  1388  
  1389  const (
  1390  	BetaManagedAgentsTokenEndpointAuthNoneParamTypeNone BetaManagedAgentsTokenEndpointAuthNoneParamType = "none"
  1391  )
  1392  
  1393  // Token endpoint requires no client authentication.
  1394  type BetaManagedAgentsTokenEndpointAuthNoneResponse struct {
  1395  	// Any of "none".
  1396  	Type BetaManagedAgentsTokenEndpointAuthNoneResponseType `json:"type" api:"required"`
  1397  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1398  	JSON struct {
  1399  		Type        respjson.Field
  1400  		ExtraFields map[string]respjson.Field
  1401  		raw         string
  1402  	} `json:"-"`
  1403  }
  1404  
  1405  // Returns the unmodified JSON received from the API
  1406  func (r BetaManagedAgentsTokenEndpointAuthNoneResponse) RawJSON() string { return r.JSON.raw }
  1407  func (r *BetaManagedAgentsTokenEndpointAuthNoneResponse) UnmarshalJSON(data []byte) error {
  1408  	return apijson.UnmarshalRoot(data, r)
  1409  }
  1410  
  1411  type BetaManagedAgentsTokenEndpointAuthNoneResponseType string
  1412  
  1413  const (
  1414  	BetaManagedAgentsTokenEndpointAuthNoneResponseTypeNone BetaManagedAgentsTokenEndpointAuthNoneResponseType = "none"
  1415  )
  1416  
  1417  // Token endpoint uses POST body authentication with client credentials.
  1418  //
  1419  // The properties ClientSecret, Type are required.
  1420  type BetaManagedAgentsTokenEndpointAuthPostParam struct {
  1421  	// OAuth client secret.
  1422  	ClientSecret string `json:"client_secret" api:"required"`
  1423  	// Any of "client_secret_post".
  1424  	Type BetaManagedAgentsTokenEndpointAuthPostParamType `json:"type,omitzero" api:"required"`
  1425  	paramObj
  1426  }
  1427  
  1428  func (r BetaManagedAgentsTokenEndpointAuthPostParam) MarshalJSON() (data []byte, err error) {
  1429  	type shadow BetaManagedAgentsTokenEndpointAuthPostParam
  1430  	return param.MarshalObject(r, (*shadow)(&r))
  1431  }
  1432  func (r *BetaManagedAgentsTokenEndpointAuthPostParam) UnmarshalJSON(data []byte) error {
  1433  	return apijson.UnmarshalRoot(data, r)
  1434  }
  1435  
  1436  type BetaManagedAgentsTokenEndpointAuthPostParamType string
  1437  
  1438  const (
  1439  	BetaManagedAgentsTokenEndpointAuthPostParamTypeClientSecretPost BetaManagedAgentsTokenEndpointAuthPostParamType = "client_secret_post"
  1440  )
  1441  
  1442  // Token endpoint uses POST body authentication with client credentials.
  1443  type BetaManagedAgentsTokenEndpointAuthPostResponse struct {
  1444  	// Any of "client_secret_post".
  1445  	Type BetaManagedAgentsTokenEndpointAuthPostResponseType `json:"type" api:"required"`
  1446  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1447  	JSON struct {
  1448  		Type        respjson.Field
  1449  		ExtraFields map[string]respjson.Field
  1450  		raw         string
  1451  	} `json:"-"`
  1452  }
  1453  
  1454  // Returns the unmodified JSON received from the API
  1455  func (r BetaManagedAgentsTokenEndpointAuthPostResponse) RawJSON() string { return r.JSON.raw }
  1456  func (r *BetaManagedAgentsTokenEndpointAuthPostResponse) UnmarshalJSON(data []byte) error {
  1457  	return apijson.UnmarshalRoot(data, r)
  1458  }
  1459  
  1460  type BetaManagedAgentsTokenEndpointAuthPostResponseType string
  1461  
  1462  const (
  1463  	BetaManagedAgentsTokenEndpointAuthPostResponseTypeClientSecretPost BetaManagedAgentsTokenEndpointAuthPostResponseType = "client_secret_post"
  1464  )
  1465  
  1466  // Updated POST body authentication parameters for the token endpoint.
  1467  //
  1468  // The property Type is required.
  1469  type BetaManagedAgentsTokenEndpointAuthPostUpdateParam struct {
  1470  	// Any of "client_secret_post".
  1471  	Type BetaManagedAgentsTokenEndpointAuthPostUpdateParamType `json:"type,omitzero" api:"required"`
  1472  	// Updated OAuth client secret.
  1473  	ClientSecret param.Opt[string] `json:"client_secret,omitzero"`
  1474  	paramObj
  1475  }
  1476  
  1477  func (r BetaManagedAgentsTokenEndpointAuthPostUpdateParam) MarshalJSON() (data []byte, err error) {
  1478  	type shadow BetaManagedAgentsTokenEndpointAuthPostUpdateParam
  1479  	return param.MarshalObject(r, (*shadow)(&r))
  1480  }
  1481  func (r *BetaManagedAgentsTokenEndpointAuthPostUpdateParam) UnmarshalJSON(data []byte) error {
  1482  	return apijson.UnmarshalRoot(data, r)
  1483  }
  1484  
  1485  type BetaManagedAgentsTokenEndpointAuthPostUpdateParamType string
  1486  
  1487  const (
  1488  	BetaManagedAgentsTokenEndpointAuthPostUpdateParamTypeClientSecretPost BetaManagedAgentsTokenEndpointAuthPostUpdateParamType = "client_secret_post"
  1489  )
  1490  
  1491  // Substitute the secret on any host the session's Environment network policy
  1492  // permits egress to. The Environment's network policy is the only boundary on
  1493  // where the secret can reach.
  1494  //
  1495  // The property Type is required.
  1496  type BetaManagedAgentsUnrestrictedCredentialNetworkingParams struct {
  1497  	// Any of "unrestricted".
  1498  	Type BetaManagedAgentsUnrestrictedCredentialNetworkingParamsType `json:"type,omitzero" api:"required"`
  1499  	paramObj
  1500  }
  1501  
  1502  func (r BetaManagedAgentsUnrestrictedCredentialNetworkingParams) MarshalJSON() (data []byte, err error) {
  1503  	type shadow BetaManagedAgentsUnrestrictedCredentialNetworkingParams
  1504  	return param.MarshalObject(r, (*shadow)(&r))
  1505  }
  1506  func (r *BetaManagedAgentsUnrestrictedCredentialNetworkingParams) UnmarshalJSON(data []byte) error {
  1507  	return apijson.UnmarshalRoot(data, r)
  1508  }
  1509  
  1510  type BetaManagedAgentsUnrestrictedCredentialNetworkingParamsType string
  1511  
  1512  const (
  1513  	BetaManagedAgentsUnrestrictedCredentialNetworkingParamsTypeUnrestricted BetaManagedAgentsUnrestrictedCredentialNetworkingParamsType = "unrestricted"
  1514  )
  1515  
  1516  // The secret is substituted on any host the session's Environment network policy
  1517  // permits egress to.
  1518  type BetaManagedAgentsUnrestrictedCredentialNetworkingResponse struct {
  1519  	// Any of "unrestricted".
  1520  	Type BetaManagedAgentsUnrestrictedCredentialNetworkingResponseType `json:"type" api:"required"`
  1521  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1522  	JSON struct {
  1523  		Type        respjson.Field
  1524  		ExtraFields map[string]respjson.Field
  1525  		raw         string
  1526  	} `json:"-"`
  1527  }
  1528  
  1529  // Returns the unmodified JSON received from the API
  1530  func (r BetaManagedAgentsUnrestrictedCredentialNetworkingResponse) RawJSON() string {
  1531  	return r.JSON.raw
  1532  }
  1533  func (r *BetaManagedAgentsUnrestrictedCredentialNetworkingResponse) UnmarshalJSON(data []byte) error {
  1534  	return apijson.UnmarshalRoot(data, r)
  1535  }
  1536  
  1537  type BetaManagedAgentsUnrestrictedCredentialNetworkingResponseType string
  1538  
  1539  const (
  1540  	BetaManagedAgentsUnrestrictedCredentialNetworkingResponseTypeUnrestricted BetaManagedAgentsUnrestrictedCredentialNetworkingResponseType = "unrestricted"
  1541  )
  1542  
  1543  type BetaVaultCredentialNewParams struct {
  1544  	// Authentication details for creating a credential.
  1545  	Auth BetaVaultCredentialNewParamsAuthUnion `json:"auth,omitzero" api:"required"`
  1546  	// Human-readable name for the credential. Up to 255 characters.
  1547  	DisplayName param.Opt[string] `json:"display_name,omitzero"`
  1548  	WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"`
  1549  	// Arbitrary key-value metadata to attach to the credential. Maximum 16 pairs, keys
  1550  	// up to 64 chars, values up to 512 chars.
  1551  	Metadata map[string]string `json:"metadata,omitzero"`
  1552  	// Optional header to specify the beta version(s) you want to use.
  1553  	Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"`
  1554  	paramObj
  1555  }
  1556  
  1557  func (r BetaVaultCredentialNewParams) MarshalJSON() (data []byte, err error) {
  1558  	type shadow BetaVaultCredentialNewParams
  1559  	return param.MarshalObject(r, (*shadow)(&r))
  1560  }
  1561  func (r *BetaVaultCredentialNewParams) UnmarshalJSON(data []byte) error {
  1562  	return apijson.UnmarshalRoot(data, r)
  1563  }
  1564  
  1565  // Only one field can be non-zero.
  1566  //
  1567  // Use [param.IsOmitted] to confirm if a field is set.
  1568  type BetaVaultCredentialNewParamsAuthUnion struct {
  1569  	OfMCPOAuth            *BetaManagedAgentsMCPOAuthCreateParams            `json:",omitzero,inline"`
  1570  	OfStaticBearer        *BetaManagedAgentsStaticBearerCreateParams        `json:",omitzero,inline"`
  1571  	OfEnvironmentVariable *BetaManagedAgentsEnvironmentVariableCreateParams `json:",omitzero,inline"`
  1572  	paramUnion
  1573  }
  1574  
  1575  func (u BetaVaultCredentialNewParamsAuthUnion) MarshalJSON() ([]byte, error) {
  1576  	return param.MarshalUnion(u, u.OfMCPOAuth, u.OfStaticBearer, u.OfEnvironmentVariable)
  1577  }
  1578  func (u *BetaVaultCredentialNewParamsAuthUnion) UnmarshalJSON(data []byte) error {
  1579  	return apijson.UnmarshalRoot(data, u)
  1580  }
  1581  
  1582  func (u *BetaVaultCredentialNewParamsAuthUnion) asAny() any {
  1583  	if !param.IsOmitted(u.OfMCPOAuth) {
  1584  		return u.OfMCPOAuth
  1585  	} else if !param.IsOmitted(u.OfStaticBearer) {
  1586  		return u.OfStaticBearer
  1587  	} else if !param.IsOmitted(u.OfEnvironmentVariable) {
  1588  		return u.OfEnvironmentVariable
  1589  	}
  1590  	return nil
  1591  }
  1592  
  1593  // Returns a pointer to the underlying variant's property, if present.
  1594  func (u BetaVaultCredentialNewParamsAuthUnion) GetAccessToken() *string {
  1595  	if vt := u.OfMCPOAuth; vt != nil {
  1596  		return &vt.AccessToken
  1597  	}
  1598  	return nil
  1599  }
  1600  
  1601  // Returns a pointer to the underlying variant's property, if present.
  1602  func (u BetaVaultCredentialNewParamsAuthUnion) GetExpiresAt() *time.Time {
  1603  	if vt := u.OfMCPOAuth; vt != nil && vt.ExpiresAt.Valid() {
  1604  		return &vt.ExpiresAt.Value
  1605  	}
  1606  	return nil
  1607  }
  1608  
  1609  // Returns a pointer to the underlying variant's property, if present.
  1610  func (u BetaVaultCredentialNewParamsAuthUnion) GetRefresh() *BetaManagedAgentsMCPOAuthRefreshParams {
  1611  	if vt := u.OfMCPOAuth; vt != nil {
  1612  		return &vt.Refresh
  1613  	}
  1614  	return nil
  1615  }
  1616  
  1617  // Returns a pointer to the underlying variant's property, if present.
  1618  func (u BetaVaultCredentialNewParamsAuthUnion) GetToken() *string {
  1619  	if vt := u.OfStaticBearer; vt != nil {
  1620  		return &vt.Token
  1621  	}
  1622  	return nil
  1623  }
  1624  
  1625  // Returns a pointer to the underlying variant's property, if present.
  1626  func (u BetaVaultCredentialNewParamsAuthUnion) GetNetworking() *BetaManagedAgentsCredentialNetworkingParamsUnion {
  1627  	if vt := u.OfEnvironmentVariable; vt != nil {
  1628  		return &vt.Networking
  1629  	}
  1630  	return nil
  1631  }
  1632  
  1633  // Returns a pointer to the underlying variant's property, if present.
  1634  func (u BetaVaultCredentialNewParamsAuthUnion) GetSecretName() *string {
  1635  	if vt := u.OfEnvironmentVariable; vt != nil {
  1636  		return &vt.SecretName
  1637  	}
  1638  	return nil
  1639  }
  1640  
  1641  // Returns a pointer to the underlying variant's property, if present.
  1642  func (u BetaVaultCredentialNewParamsAuthUnion) GetSecretValue() *string {
  1643  	if vt := u.OfEnvironmentVariable; vt != nil {
  1644  		return &vt.SecretValue
  1645  	}
  1646  	return nil
  1647  }
  1648  
  1649  // Returns a pointer to the underlying variant's property, if present.
  1650  func (u BetaVaultCredentialNewParamsAuthUnion) GetInjectionLocation() *BetaManagedAgentsInjectionLocationParams {
  1651  	if vt := u.OfEnvironmentVariable; vt != nil {
  1652  		return &vt.InjectionLocation
  1653  	}
  1654  	return nil
  1655  }
  1656  
  1657  // Returns a pointer to the underlying variant's property, if present.
  1658  func (u BetaVaultCredentialNewParamsAuthUnion) GetMCPServerURL() *string {
  1659  	if vt := u.OfMCPOAuth; vt != nil {
  1660  		return (*string)(&vt.MCPServerURL)
  1661  	} else if vt := u.OfStaticBearer; vt != nil {
  1662  		return (*string)(&vt.MCPServerURL)
  1663  	}
  1664  	return nil
  1665  }
  1666  
  1667  // Returns a pointer to the underlying variant's property, if present.
  1668  func (u BetaVaultCredentialNewParamsAuthUnion) GetType() *string {
  1669  	if vt := u.OfMCPOAuth; vt != nil {
  1670  		return (*string)(&vt.Type)
  1671  	} else if vt := u.OfStaticBearer; vt != nil {
  1672  		return (*string)(&vt.Type)
  1673  	} else if vt := u.OfEnvironmentVariable; vt != nil {
  1674  		return (*string)(&vt.Type)
  1675  	}
  1676  	return nil
  1677  }
  1678  
  1679  func init() {
  1680  	apijson.RegisterUnion[BetaVaultCredentialNewParamsAuthUnion](
  1681  		"type",
  1682  		apijson.Discriminator[BetaManagedAgentsMCPOAuthCreateParams]("mcp_oauth"),
  1683  		apijson.Discriminator[BetaManagedAgentsStaticBearerCreateParams]("static_bearer"),
  1684  		apijson.Discriminator[BetaManagedAgentsEnvironmentVariableCreateParams]("environment_variable"),
  1685  	)
  1686  }
  1687  
  1688  type BetaVaultCredentialGetParams struct {
  1689  	VaultID     string            `path:"vault_id" api:"required" json:"-"`
  1690  	WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"`
  1691  	// Optional header to specify the beta version(s) you want to use.
  1692  	Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"`
  1693  	paramObj
  1694  }
  1695  
  1696  type BetaVaultCredentialUpdateParams struct {
  1697  	VaultID string `path:"vault_id" api:"required" json:"-"`
  1698  	// Updated human-readable name for the credential. 1-255 characters.
  1699  	DisplayName param.Opt[string] `json:"display_name,omitzero"`
  1700  	WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"`
  1701  	// Metadata patch. Set a key to a string to upsert it, or to null to delete it.
  1702  	// Omitted keys are preserved.
  1703  	Metadata map[string]string `json:"metadata,omitzero"`
  1704  	// Updated authentication details for a credential.
  1705  	Auth BetaVaultCredentialUpdateParamsAuthUnion `json:"auth,omitzero"`
  1706  	// Optional header to specify the beta version(s) you want to use.
  1707  	Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"`
  1708  	paramObj
  1709  }
  1710  
  1711  func (r BetaVaultCredentialUpdateParams) MarshalJSON() (data []byte, err error) {
  1712  	type shadow BetaVaultCredentialUpdateParams
  1713  	return param.MarshalObject(r, (*shadow)(&r))
  1714  }
  1715  func (r *BetaVaultCredentialUpdateParams) UnmarshalJSON(data []byte) error {
  1716  	return apijson.UnmarshalRoot(data, r)
  1717  }
  1718  
  1719  // Only one field can be non-zero.
  1720  //
  1721  // Use [param.IsOmitted] to confirm if a field is set.
  1722  type BetaVaultCredentialUpdateParamsAuthUnion struct {
  1723  	OfMCPOAuth            *BetaManagedAgentsMCPOAuthUpdateParams            `json:",omitzero,inline"`
  1724  	OfStaticBearer        *BetaManagedAgentsStaticBearerUpdateParams        `json:",omitzero,inline"`
  1725  	OfEnvironmentVariable *BetaManagedAgentsEnvironmentVariableUpdateParams `json:",omitzero,inline"`
  1726  	paramUnion
  1727  }
  1728  
  1729  func (u BetaVaultCredentialUpdateParamsAuthUnion) MarshalJSON() ([]byte, error) {
  1730  	return param.MarshalUnion(u, u.OfMCPOAuth, u.OfStaticBearer, u.OfEnvironmentVariable)
  1731  }
  1732  func (u *BetaVaultCredentialUpdateParamsAuthUnion) UnmarshalJSON(data []byte) error {
  1733  	return apijson.UnmarshalRoot(data, u)
  1734  }
  1735  
  1736  func (u *BetaVaultCredentialUpdateParamsAuthUnion) asAny() any {
  1737  	if !param.IsOmitted(u.OfMCPOAuth) {
  1738  		return u.OfMCPOAuth
  1739  	} else if !param.IsOmitted(u.OfStaticBearer) {
  1740  		return u.OfStaticBearer
  1741  	} else if !param.IsOmitted(u.OfEnvironmentVariable) {
  1742  		return u.OfEnvironmentVariable
  1743  	}
  1744  	return nil
  1745  }
  1746  
  1747  // Returns a pointer to the underlying variant's property, if present.
  1748  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetAccessToken() *string {
  1749  	if vt := u.OfMCPOAuth; vt != nil && vt.AccessToken.Valid() {
  1750  		return &vt.AccessToken.Value
  1751  	}
  1752  	return nil
  1753  }
  1754  
  1755  // Returns a pointer to the underlying variant's property, if present.
  1756  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetExpiresAt() *time.Time {
  1757  	if vt := u.OfMCPOAuth; vt != nil && vt.ExpiresAt.Valid() {
  1758  		return &vt.ExpiresAt.Value
  1759  	}
  1760  	return nil
  1761  }
  1762  
  1763  // Returns a pointer to the underlying variant's property, if present.
  1764  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetRefresh() *BetaManagedAgentsMCPOAuthRefreshUpdateParams {
  1765  	if vt := u.OfMCPOAuth; vt != nil {
  1766  		return &vt.Refresh
  1767  	}
  1768  	return nil
  1769  }
  1770  
  1771  // Returns a pointer to the underlying variant's property, if present.
  1772  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetToken() *string {
  1773  	if vt := u.OfStaticBearer; vt != nil && vt.Token.Valid() {
  1774  		return &vt.Token.Value
  1775  	}
  1776  	return nil
  1777  }
  1778  
  1779  // Returns a pointer to the underlying variant's property, if present.
  1780  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetInjectionLocation() *BetaManagedAgentsInjectionLocationUpdateParams {
  1781  	if vt := u.OfEnvironmentVariable; vt != nil {
  1782  		return &vt.InjectionLocation
  1783  	}
  1784  	return nil
  1785  }
  1786  
  1787  // Returns a pointer to the underlying variant's property, if present.
  1788  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetNetworking() *BetaManagedAgentsCredentialNetworkingParamsUnion {
  1789  	if vt := u.OfEnvironmentVariable; vt != nil {
  1790  		return &vt.Networking
  1791  	}
  1792  	return nil
  1793  }
  1794  
  1795  // Returns a pointer to the underlying variant's property, if present.
  1796  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetSecretValue() *string {
  1797  	if vt := u.OfEnvironmentVariable; vt != nil && vt.SecretValue.Valid() {
  1798  		return &vt.SecretValue.Value
  1799  	}
  1800  	return nil
  1801  }
  1802  
  1803  // Returns a pointer to the underlying variant's property, if present.
  1804  func (u BetaVaultCredentialUpdateParamsAuthUnion) GetType() *string {
  1805  	if vt := u.OfMCPOAuth; vt != nil {
  1806  		return (*string)(&vt.Type)
  1807  	} else if vt := u.OfStaticBearer; vt != nil {
  1808  		return (*string)(&vt.Type)
  1809  	} else if vt := u.OfEnvironmentVariable; vt != nil {
  1810  		return (*string)(&vt.Type)
  1811  	}
  1812  	return nil
  1813  }
  1814  
  1815  func init() {
  1816  	apijson.RegisterUnion[BetaVaultCredentialUpdateParamsAuthUnion](
  1817  		"type",
  1818  		apijson.Discriminator[BetaManagedAgentsMCPOAuthUpdateParams]("mcp_oauth"),
  1819  		apijson.Discriminator[BetaManagedAgentsStaticBearerUpdateParams]("static_bearer"),
  1820  		apijson.Discriminator[BetaManagedAgentsEnvironmentVariableUpdateParams]("environment_variable"),
  1821  	)
  1822  }
  1823  
  1824  type BetaVaultCredentialListParams struct {
  1825  	// Whether to include archived credentials in the results.
  1826  	IncludeArchived param.Opt[bool] `query:"include_archived,omitzero" json:"-"`
  1827  	// Maximum number of credentials to return per page. Defaults to 20, maximum 100.
  1828  	Limit param.Opt[int64] `query:"limit,omitzero" json:"-"`
  1829  	// Opaque pagination token from a previous `list_credentials` response.
  1830  	Page        param.Opt[string] `query:"page,omitzero" json:"-"`
  1831  	WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"`
  1832  	// Optional header to specify the beta version(s) you want to use.
  1833  	Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"`
  1834  	paramObj
  1835  }
  1836  
  1837  // URLQuery serializes [BetaVaultCredentialListParams]'s query parameters as
  1838  // `url.Values`.
  1839  func (r BetaVaultCredentialListParams) URLQuery() (v url.Values, err error) {
  1840  	return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
  1841  		ArrayFormat:  apiquery.ArrayQueryFormatBrackets,
  1842  		NestedFormat: apiquery.NestedQueryFormatBrackets,
  1843  	})
  1844  }
  1845  
  1846  type BetaVaultCredentialDeleteParams struct {
  1847  	VaultID     string            `path:"vault_id" api:"required" json:"-"`
  1848  	WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"`
  1849  	// Optional header to specify the beta version(s) you want to use.
  1850  	Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"`
  1851  	paramObj
  1852  }
  1853  
  1854  type BetaVaultCredentialArchiveParams struct {
  1855  	VaultID     string            `path:"vault_id" api:"required" json:"-"`
  1856  	WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"`
  1857  	// Optional header to specify the beta version(s) you want to use.
  1858  	Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"`
  1859  	paramObj
  1860  }
  1861  
  1862  type BetaVaultCredentialMCPOAuthValidateParams struct {
  1863  	VaultID     string            `path:"vault_id" api:"required" json:"-"`
  1864  	WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"`
  1865  	// Optional header to specify the beta version(s) you want to use.
  1866  	Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"`
  1867  	paramObj
  1868  }