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 }