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

     1  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
     2  
     3  package anthropic
     4  
     5  import (
     6  	"encoding/json"
     7  	"errors"
     8  	"net/http"
     9  	"slices"
    10  	"time"
    11  
    12  	"github.com/anthropics/anthropic-sdk-go/internal/apijson"
    13  	"github.com/anthropics/anthropic-sdk-go/internal/requestconfig"
    14  	"github.com/anthropics/anthropic-sdk-go/option"
    15  	"github.com/anthropics/anthropic-sdk-go/packages/respjson"
    16  	"github.com/anthropics/anthropic-sdk-go/shared/constant"
    17  	standardwebhooks "github.com/standard-webhooks/standard-webhooks/libraries/go"
    18  )
    19  
    20  // BetaWebhookService contains methods and other services that help with
    21  // interacting with the anthropic API.
    22  //
    23  // Note, unlike clients, this service does not read variables from the environment
    24  // automatically. You should not instantiate this service directly, and instead use
    25  // the [NewBetaWebhookService] method instead.
    26  type BetaWebhookService struct {
    27  	Options []option.RequestOption
    28  }
    29  
    30  // NewBetaWebhookService generates a new service that applies the given options to
    31  // each request. These options are applied after the parent client's options (if
    32  // there is one), and before any request-specific options.
    33  func NewBetaWebhookService(opts ...option.RequestOption) (r BetaWebhookService) {
    34  	r = BetaWebhookService{}
    35  	r.Options = opts
    36  	return
    37  }
    38  
    39  // Parses a webhook payload into an event without verifying its signature. Prefer
    40  // `unwrap()` unless you have already verified the signature yourself.
    41  func (r *BetaWebhookService) ParseUnverified(payload []byte, opts ...option.RequestOption) (*UnwrapWebhookEvent, error) {
    42  	res := &UnwrapWebhookEvent{}
    43  	err := res.UnmarshalJSON(payload)
    44  	if err != nil {
    45  		return res, err
    46  	}
    47  	return res, nil
    48  }
    49  
    50  // Verifies the webhook signature from the `webhook-id`, `webhook-timestamp` and
    51  // `webhook-signature` headers using your webhook signing key, then parses the
    52  // payload into an event. Fails if the signature is missing or invalid.
    53  func (r *BetaWebhookService) Unwrap(payload []byte, headers http.Header, opts ...option.RequestOption) (*UnwrapWebhookEvent, error) {
    54  	opts = slices.Concat(r.Options, opts)
    55  	cfg, err := requestconfig.PreRequestOptions(opts...)
    56  	if err != nil {
    57  		return nil, err
    58  	}
    59  	key := cfg.WebhookKey
    60  	if key == "" {
    61  		return nil, errors.New("The WebhookKey option must be set in order to verify webhook headers")
    62  	}
    63  	wh, err := standardwebhooks.NewWebhook(key)
    64  	if err != nil {
    65  		return nil, err
    66  	}
    67  	err = wh.Verify(payload, headers)
    68  	if err != nil {
    69  		return nil, err
    70  	}
    71  	res := &UnwrapWebhookEvent{}
    72  	err = res.UnmarshalJSON(payload)
    73  	if err != nil {
    74  		return res, err
    75  	}
    76  	return res, nil
    77  }
    78  
    79  type BetaWebhookAgentArchivedEventData struct {
    80  	// ID of the agent that triggered the event.
    81  	ID             string                 `json:"id" api:"required"`
    82  	OrganizationID string                 `json:"organization_id" api:"required"`
    83  	Type           constant.AgentArchived `json:"type" default:"agent.archived"`
    84  	WorkspaceID    string                 `json:"workspace_id" api:"required"`
    85  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
    86  	JSON struct {
    87  		ID             respjson.Field
    88  		OrganizationID respjson.Field
    89  		Type           respjson.Field
    90  		WorkspaceID    respjson.Field
    91  		ExtraFields    map[string]respjson.Field
    92  		raw            string
    93  	} `json:"-"`
    94  }
    95  
    96  // Returns the unmodified JSON received from the API
    97  func (r BetaWebhookAgentArchivedEventData) RawJSON() string { return r.JSON.raw }
    98  func (r *BetaWebhookAgentArchivedEventData) UnmarshalJSON(data []byte) error {
    99  	return apijson.UnmarshalRoot(data, r)
   100  }
   101  
   102  type BetaWebhookAgentCreatedEventData struct {
   103  	// ID of the agent that triggered the event.
   104  	ID             string                `json:"id" api:"required"`
   105  	OrganizationID string                `json:"organization_id" api:"required"`
   106  	Type           constant.AgentCreated `json:"type" default:"agent.created"`
   107  	WorkspaceID    string                `json:"workspace_id" api:"required"`
   108  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   109  	JSON struct {
   110  		ID             respjson.Field
   111  		OrganizationID respjson.Field
   112  		Type           respjson.Field
   113  		WorkspaceID    respjson.Field
   114  		ExtraFields    map[string]respjson.Field
   115  		raw            string
   116  	} `json:"-"`
   117  }
   118  
   119  // Returns the unmodified JSON received from the API
   120  func (r BetaWebhookAgentCreatedEventData) RawJSON() string { return r.JSON.raw }
   121  func (r *BetaWebhookAgentCreatedEventData) UnmarshalJSON(data []byte) error {
   122  	return apijson.UnmarshalRoot(data, r)
   123  }
   124  
   125  type BetaWebhookAgentDeletedEventData struct {
   126  	// ID of the agent that triggered the event.
   127  	ID             string                `json:"id" api:"required"`
   128  	OrganizationID string                `json:"organization_id" api:"required"`
   129  	Type           constant.AgentDeleted `json:"type" default:"agent.deleted"`
   130  	WorkspaceID    string                `json:"workspace_id" api:"required"`
   131  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   132  	JSON struct {
   133  		ID             respjson.Field
   134  		OrganizationID respjson.Field
   135  		Type           respjson.Field
   136  		WorkspaceID    respjson.Field
   137  		ExtraFields    map[string]respjson.Field
   138  		raw            string
   139  	} `json:"-"`
   140  }
   141  
   142  // Returns the unmodified JSON received from the API
   143  func (r BetaWebhookAgentDeletedEventData) RawJSON() string { return r.JSON.raw }
   144  func (r *BetaWebhookAgentDeletedEventData) UnmarshalJSON(data []byte) error {
   145  	return apijson.UnmarshalRoot(data, r)
   146  }
   147  
   148  type BetaWebhookAgentUpdatedEventData struct {
   149  	// ID of the agent that triggered the event.
   150  	ID             string                `json:"id" api:"required"`
   151  	OrganizationID string                `json:"organization_id" api:"required"`
   152  	Type           constant.AgentUpdated `json:"type" default:"agent.updated"`
   153  	WorkspaceID    string                `json:"workspace_id" api:"required"`
   154  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   155  	JSON struct {
   156  		ID             respjson.Field
   157  		OrganizationID respjson.Field
   158  		Type           respjson.Field
   159  		WorkspaceID    respjson.Field
   160  		ExtraFields    map[string]respjson.Field
   161  		raw            string
   162  	} `json:"-"`
   163  }
   164  
   165  // Returns the unmodified JSON received from the API
   166  func (r BetaWebhookAgentUpdatedEventData) RawJSON() string { return r.JSON.raw }
   167  func (r *BetaWebhookAgentUpdatedEventData) UnmarshalJSON(data []byte) error {
   168  	return apijson.UnmarshalRoot(data, r)
   169  }
   170  
   171  type BetaWebhookDeploymentArchivedEventData struct {
   172  	// ID of the deployment that triggered the event.
   173  	ID             string                      `json:"id" api:"required"`
   174  	OrganizationID string                      `json:"organization_id" api:"required"`
   175  	Type           constant.DeploymentArchived `json:"type" default:"deployment.archived"`
   176  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
   177  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   178  	JSON struct {
   179  		ID             respjson.Field
   180  		OrganizationID respjson.Field
   181  		Type           respjson.Field
   182  		WorkspaceID    respjson.Field
   183  		ExtraFields    map[string]respjson.Field
   184  		raw            string
   185  	} `json:"-"`
   186  }
   187  
   188  // Returns the unmodified JSON received from the API
   189  func (r BetaWebhookDeploymentArchivedEventData) RawJSON() string { return r.JSON.raw }
   190  func (r *BetaWebhookDeploymentArchivedEventData) UnmarshalJSON(data []byte) error {
   191  	return apijson.UnmarshalRoot(data, r)
   192  }
   193  
   194  type BetaWebhookDeploymentCreatedEventData struct {
   195  	// ID of the deployment that triggered the event.
   196  	ID             string                     `json:"id" api:"required"`
   197  	OrganizationID string                     `json:"organization_id" api:"required"`
   198  	Type           constant.DeploymentCreated `json:"type" default:"deployment.created"`
   199  	WorkspaceID    string                     `json:"workspace_id" api:"required"`
   200  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   201  	JSON struct {
   202  		ID             respjson.Field
   203  		OrganizationID respjson.Field
   204  		Type           respjson.Field
   205  		WorkspaceID    respjson.Field
   206  		ExtraFields    map[string]respjson.Field
   207  		raw            string
   208  	} `json:"-"`
   209  }
   210  
   211  // Returns the unmodified JSON received from the API
   212  func (r BetaWebhookDeploymentCreatedEventData) RawJSON() string { return r.JSON.raw }
   213  func (r *BetaWebhookDeploymentCreatedEventData) UnmarshalJSON(data []byte) error {
   214  	return apijson.UnmarshalRoot(data, r)
   215  }
   216  
   217  type BetaWebhookDeploymentDeletedEventData struct {
   218  	// ID of the deployment that triggered the event.
   219  	ID             string                     `json:"id" api:"required"`
   220  	OrganizationID string                     `json:"organization_id" api:"required"`
   221  	Type           constant.DeploymentDeleted `json:"type" default:"deployment.deleted"`
   222  	WorkspaceID    string                     `json:"workspace_id" api:"required"`
   223  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   224  	JSON struct {
   225  		ID             respjson.Field
   226  		OrganizationID respjson.Field
   227  		Type           respjson.Field
   228  		WorkspaceID    respjson.Field
   229  		ExtraFields    map[string]respjson.Field
   230  		raw            string
   231  	} `json:"-"`
   232  }
   233  
   234  // Returns the unmodified JSON received from the API
   235  func (r BetaWebhookDeploymentDeletedEventData) RawJSON() string { return r.JSON.raw }
   236  func (r *BetaWebhookDeploymentDeletedEventData) UnmarshalJSON(data []byte) error {
   237  	return apijson.UnmarshalRoot(data, r)
   238  }
   239  
   240  type BetaWebhookDeploymentPausedEventData struct {
   241  	// ID of the deployment that triggered the event.
   242  	ID             string                    `json:"id" api:"required"`
   243  	OrganizationID string                    `json:"organization_id" api:"required"`
   244  	Type           constant.DeploymentPaused `json:"type" default:"deployment.paused"`
   245  	WorkspaceID    string                    `json:"workspace_id" api:"required"`
   246  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   247  	JSON struct {
   248  		ID             respjson.Field
   249  		OrganizationID respjson.Field
   250  		Type           respjson.Field
   251  		WorkspaceID    respjson.Field
   252  		ExtraFields    map[string]respjson.Field
   253  		raw            string
   254  	} `json:"-"`
   255  }
   256  
   257  // Returns the unmodified JSON received from the API
   258  func (r BetaWebhookDeploymentPausedEventData) RawJSON() string { return r.JSON.raw }
   259  func (r *BetaWebhookDeploymentPausedEventData) UnmarshalJSON(data []byte) error {
   260  	return apijson.UnmarshalRoot(data, r)
   261  }
   262  
   263  type BetaWebhookDeploymentRunFailedEventData struct {
   264  	// ID of the deployment run that triggered the event.
   265  	ID             string                       `json:"id" api:"required"`
   266  	OrganizationID string                       `json:"organization_id" api:"required"`
   267  	Type           constant.DeploymentRunFailed `json:"type" default:"deployment_run.failed"`
   268  	WorkspaceID    string                       `json:"workspace_id" api:"required"`
   269  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   270  	JSON struct {
   271  		ID             respjson.Field
   272  		OrganizationID respjson.Field
   273  		Type           respjson.Field
   274  		WorkspaceID    respjson.Field
   275  		ExtraFields    map[string]respjson.Field
   276  		raw            string
   277  	} `json:"-"`
   278  }
   279  
   280  // Returns the unmodified JSON received from the API
   281  func (r BetaWebhookDeploymentRunFailedEventData) RawJSON() string { return r.JSON.raw }
   282  func (r *BetaWebhookDeploymentRunFailedEventData) UnmarshalJSON(data []byte) error {
   283  	return apijson.UnmarshalRoot(data, r)
   284  }
   285  
   286  type BetaWebhookDeploymentRunStartedEventData struct {
   287  	// ID of the deployment run that triggered the event.
   288  	ID             string                        `json:"id" api:"required"`
   289  	OrganizationID string                        `json:"organization_id" api:"required"`
   290  	Type           constant.DeploymentRunStarted `json:"type" default:"deployment_run.started"`
   291  	WorkspaceID    string                        `json:"workspace_id" api:"required"`
   292  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   293  	JSON struct {
   294  		ID             respjson.Field
   295  		OrganizationID respjson.Field
   296  		Type           respjson.Field
   297  		WorkspaceID    respjson.Field
   298  		ExtraFields    map[string]respjson.Field
   299  		raw            string
   300  	} `json:"-"`
   301  }
   302  
   303  // Returns the unmodified JSON received from the API
   304  func (r BetaWebhookDeploymentRunStartedEventData) RawJSON() string { return r.JSON.raw }
   305  func (r *BetaWebhookDeploymentRunStartedEventData) UnmarshalJSON(data []byte) error {
   306  	return apijson.UnmarshalRoot(data, r)
   307  }
   308  
   309  type BetaWebhookDeploymentRunSucceededEventData struct {
   310  	// ID of the deployment run that triggered the event.
   311  	ID             string                          `json:"id" api:"required"`
   312  	OrganizationID string                          `json:"organization_id" api:"required"`
   313  	Type           constant.DeploymentRunSucceeded `json:"type" default:"deployment_run.succeeded"`
   314  	WorkspaceID    string                          `json:"workspace_id" api:"required"`
   315  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   316  	JSON struct {
   317  		ID             respjson.Field
   318  		OrganizationID respjson.Field
   319  		Type           respjson.Field
   320  		WorkspaceID    respjson.Field
   321  		ExtraFields    map[string]respjson.Field
   322  		raw            string
   323  	} `json:"-"`
   324  }
   325  
   326  // Returns the unmodified JSON received from the API
   327  func (r BetaWebhookDeploymentRunSucceededEventData) RawJSON() string { return r.JSON.raw }
   328  func (r *BetaWebhookDeploymentRunSucceededEventData) UnmarshalJSON(data []byte) error {
   329  	return apijson.UnmarshalRoot(data, r)
   330  }
   331  
   332  type BetaWebhookDeploymentUnpausedEventData struct {
   333  	// ID of the deployment that triggered the event.
   334  	ID             string                      `json:"id" api:"required"`
   335  	OrganizationID string                      `json:"organization_id" api:"required"`
   336  	Type           constant.DeploymentUnpaused `json:"type" default:"deployment.unpaused"`
   337  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
   338  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   339  	JSON struct {
   340  		ID             respjson.Field
   341  		OrganizationID respjson.Field
   342  		Type           respjson.Field
   343  		WorkspaceID    respjson.Field
   344  		ExtraFields    map[string]respjson.Field
   345  		raw            string
   346  	} `json:"-"`
   347  }
   348  
   349  // Returns the unmodified JSON received from the API
   350  func (r BetaWebhookDeploymentUnpausedEventData) RawJSON() string { return r.JSON.raw }
   351  func (r *BetaWebhookDeploymentUnpausedEventData) UnmarshalJSON(data []byte) error {
   352  	return apijson.UnmarshalRoot(data, r)
   353  }
   354  
   355  type BetaWebhookDeploymentUpdatedEventData struct {
   356  	// ID of the deployment that triggered the event.
   357  	ID             string                     `json:"id" api:"required"`
   358  	OrganizationID string                     `json:"organization_id" api:"required"`
   359  	Type           constant.DeploymentUpdated `json:"type" default:"deployment.updated"`
   360  	WorkspaceID    string                     `json:"workspace_id" api:"required"`
   361  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   362  	JSON struct {
   363  		ID             respjson.Field
   364  		OrganizationID respjson.Field
   365  		Type           respjson.Field
   366  		WorkspaceID    respjson.Field
   367  		ExtraFields    map[string]respjson.Field
   368  		raw            string
   369  	} `json:"-"`
   370  }
   371  
   372  // Returns the unmodified JSON received from the API
   373  func (r BetaWebhookDeploymentUpdatedEventData) RawJSON() string { return r.JSON.raw }
   374  func (r *BetaWebhookDeploymentUpdatedEventData) UnmarshalJSON(data []byte) error {
   375  	return apijson.UnmarshalRoot(data, r)
   376  }
   377  
   378  type BetaWebhookEnvironmentArchivedEventData struct {
   379  	// ID of the environment that triggered the event.
   380  	ID             string                       `json:"id" api:"required"`
   381  	OrganizationID string                       `json:"organization_id" api:"required"`
   382  	Type           constant.EnvironmentArchived `json:"type" default:"environment.archived"`
   383  	WorkspaceID    string                       `json:"workspace_id" api:"required"`
   384  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   385  	JSON struct {
   386  		ID             respjson.Field
   387  		OrganizationID respjson.Field
   388  		Type           respjson.Field
   389  		WorkspaceID    respjson.Field
   390  		ExtraFields    map[string]respjson.Field
   391  		raw            string
   392  	} `json:"-"`
   393  }
   394  
   395  // Returns the unmodified JSON received from the API
   396  func (r BetaWebhookEnvironmentArchivedEventData) RawJSON() string { return r.JSON.raw }
   397  func (r *BetaWebhookEnvironmentArchivedEventData) UnmarshalJSON(data []byte) error {
   398  	return apijson.UnmarshalRoot(data, r)
   399  }
   400  
   401  type BetaWebhookEnvironmentCreatedEventData struct {
   402  	// ID of the environment that triggered the event.
   403  	ID             string                      `json:"id" api:"required"`
   404  	OrganizationID string                      `json:"organization_id" api:"required"`
   405  	Type           constant.EnvironmentCreated `json:"type" default:"environment.created"`
   406  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
   407  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   408  	JSON struct {
   409  		ID             respjson.Field
   410  		OrganizationID respjson.Field
   411  		Type           respjson.Field
   412  		WorkspaceID    respjson.Field
   413  		ExtraFields    map[string]respjson.Field
   414  		raw            string
   415  	} `json:"-"`
   416  }
   417  
   418  // Returns the unmodified JSON received from the API
   419  func (r BetaWebhookEnvironmentCreatedEventData) RawJSON() string { return r.JSON.raw }
   420  func (r *BetaWebhookEnvironmentCreatedEventData) UnmarshalJSON(data []byte) error {
   421  	return apijson.UnmarshalRoot(data, r)
   422  }
   423  
   424  type BetaWebhookEnvironmentDeletedEventData struct {
   425  	// ID of the environment that triggered the event.
   426  	ID             string                      `json:"id" api:"required"`
   427  	OrganizationID string                      `json:"organization_id" api:"required"`
   428  	Type           constant.EnvironmentDeleted `json:"type" default:"environment.deleted"`
   429  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
   430  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   431  	JSON struct {
   432  		ID             respjson.Field
   433  		OrganizationID respjson.Field
   434  		Type           respjson.Field
   435  		WorkspaceID    respjson.Field
   436  		ExtraFields    map[string]respjson.Field
   437  		raw            string
   438  	} `json:"-"`
   439  }
   440  
   441  // Returns the unmodified JSON received from the API
   442  func (r BetaWebhookEnvironmentDeletedEventData) RawJSON() string { return r.JSON.raw }
   443  func (r *BetaWebhookEnvironmentDeletedEventData) UnmarshalJSON(data []byte) error {
   444  	return apijson.UnmarshalRoot(data, r)
   445  }
   446  
   447  type BetaWebhookEnvironmentUpdatedEventData struct {
   448  	// ID of the environment that triggered the event.
   449  	ID             string                      `json:"id" api:"required"`
   450  	OrganizationID string                      `json:"organization_id" api:"required"`
   451  	Type           constant.EnvironmentUpdated `json:"type" default:"environment.updated"`
   452  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
   453  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   454  	JSON struct {
   455  		ID             respjson.Field
   456  		OrganizationID respjson.Field
   457  		Type           respjson.Field
   458  		WorkspaceID    respjson.Field
   459  		ExtraFields    map[string]respjson.Field
   460  		raw            string
   461  	} `json:"-"`
   462  }
   463  
   464  // Returns the unmodified JSON received from the API
   465  func (r BetaWebhookEnvironmentUpdatedEventData) RawJSON() string { return r.JSON.raw }
   466  func (r *BetaWebhookEnvironmentUpdatedEventData) UnmarshalJSON(data []byte) error {
   467  	return apijson.UnmarshalRoot(data, r)
   468  }
   469  
   470  type UnwrapWebhookEvent struct {
   471  	// Unique event identifier for idempotency.
   472  	ID string `json:"id" api:"required"`
   473  	// RFC 3339 timestamp when the event occurred.
   474  	CreatedAt time.Time                 `json:"created_at" api:"required" format:"date-time"`
   475  	Data      BetaWebhookEventDataUnion `json:"data" api:"required"`
   476  	// Object type. Always `event` for webhook payloads.
   477  	Type constant.Event `json:"type" default:"event"`
   478  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
   479  	JSON struct {
   480  		ID          respjson.Field
   481  		CreatedAt   respjson.Field
   482  		Data        respjson.Field
   483  		Type        respjson.Field
   484  		ExtraFields map[string]respjson.Field
   485  		raw         string
   486  	} `json:"-"`
   487  }
   488  
   489  // Returns the unmodified JSON received from the API
   490  func (r UnwrapWebhookEvent) RawJSON() string { return r.JSON.raw }
   491  func (r *UnwrapWebhookEvent) UnmarshalJSON(data []byte) error {
   492  	return apijson.UnmarshalRoot(data, r)
   493  }
   494  
   495  // BetaWebhookEventDataUnion contains all possible properties and values from
   496  // [BetaWebhookSessionCreatedEventData], [BetaWebhookSessionPendingEventData],
   497  // [BetaWebhookSessionRunningEventData], [BetaWebhookSessionIdledEventData],
   498  // [BetaWebhookSessionRequiresActionEventData],
   499  // [BetaWebhookSessionArchivedEventData], [BetaWebhookSessionDeletedEventData],
   500  // [BetaWebhookSessionStatusRescheduledEventData],
   501  // [BetaWebhookSessionStatusRunStartedEventData],
   502  // [BetaWebhookSessionStatusIdledEventData],
   503  // [BetaWebhookSessionStatusTerminatedEventData],
   504  // [BetaWebhookSessionThreadCreatedEventData],
   505  // [BetaWebhookSessionThreadIdledEventData],
   506  // [BetaWebhookSessionThreadTerminatedEventData],
   507  // [BetaWebhookSessionOutcomeEvaluationEndedEventData],
   508  // [BetaWebhookVaultCreatedEventData], [BetaWebhookVaultArchivedEventData],
   509  // [BetaWebhookVaultDeletedEventData],
   510  // [BetaWebhookVaultCredentialCreatedEventData],
   511  // [BetaWebhookVaultCredentialArchivedEventData],
   512  // [BetaWebhookVaultCredentialDeletedEventData],
   513  // [BetaWebhookVaultCredentialRefreshFailedEventData],
   514  // [BetaWebhookSessionUpdatedEventData], [BetaWebhookAgentCreatedEventData],
   515  // [BetaWebhookAgentArchivedEventData], [BetaWebhookAgentDeletedEventData],
   516  // [BetaWebhookDeploymentPausedEventData],
   517  // [BetaWebhookDeploymentRunFailedEventData],
   518  // [BetaWebhookDeploymentCreatedEventData],
   519  // [BetaWebhookDeploymentUpdatedEventData],
   520  // [BetaWebhookDeploymentUnpausedEventData], [BetaWebhookAgentUpdatedEventData],
   521  // [BetaWebhookDeploymentArchivedEventData],
   522  // [BetaWebhookDeploymentRunStartedEventData],
   523  // [BetaWebhookDeploymentDeletedEventData],
   524  // [BetaWebhookDeploymentRunSucceededEventData],
   525  // [BetaWebhookEnvironmentCreatedEventData],
   526  // [BetaWebhookEnvironmentUpdatedEventData],
   527  // [BetaWebhookEnvironmentArchivedEventData],
   528  // [BetaWebhookEnvironmentDeletedEventData],
   529  // [BetaWebhookMemoryStoreCreatedEventData],
   530  // [BetaWebhookMemoryStoreArchivedEventData],
   531  // [BetaWebhookMemoryStoreDeletedEventData],
   532  // [BetaWebhookSessionBudgetReachedEventData].
   533  //
   534  // Use the [BetaWebhookEventDataUnion.AsAny] method to switch on the variant.
   535  //
   536  // Use the methods beginning with 'As' to cast the union to one of its variants.
   537  type BetaWebhookEventDataUnion struct {
   538  	ID             string `json:"id"`
   539  	OrganizationID string `json:"organization_id"`
   540  	// Any of "session.created", "session.pending", "session.running", "session.idled",
   541  	// "session.requires_action", "session.archived", "session.deleted",
   542  	// "session.status_rescheduled", "session.status_run_started",
   543  	// "session.status_idled", "session.status_terminated", "session.thread_created",
   544  	// "session.thread_idled", "session.thread_terminated",
   545  	// "session.outcome_evaluation_ended", "vault.created", "vault.archived",
   546  	// "vault.deleted", "vault_credential.created", "vault_credential.archived",
   547  	// "vault_credential.deleted", "vault_credential.refresh_failed",
   548  	// "session.updated", "agent.created", "agent.archived", "agent.deleted",
   549  	// "deployment.paused", "deployment_run.failed", "deployment.created",
   550  	// "deployment.updated", "deployment.unpaused", "agent.updated",
   551  	// "deployment.archived", "deployment_run.started", "deployment.deleted",
   552  	// "deployment_run.succeeded", "environment.created", "environment.updated",
   553  	// "environment.archived", "environment.deleted", "memory_store.created",
   554  	// "memory_store.archived", "memory_store.deleted", "session.budget_reached".
   555  	Type            string `json:"type"`
   556  	WorkspaceID     string `json:"workspace_id"`
   557  	SessionThreadID string `json:"session_thread_id"`
   558  	VaultID         string `json:"vault_id"`
   559  	JSON            struct {
   560  		ID              respjson.Field
   561  		OrganizationID  respjson.Field
   562  		Type            respjson.Field
   563  		WorkspaceID     respjson.Field
   564  		SessionThreadID respjson.Field
   565  		VaultID         respjson.Field
   566  		raw             string
   567  	} `json:"-"`
   568  }
   569  
   570  // anyBetaWebhookEventData is implemented by each variant of
   571  // [BetaWebhookEventDataUnion] to add type safety for the return type of
   572  // [BetaWebhookEventDataUnion.AsAny]
   573  type anyBetaWebhookEventData interface {
   574  	implBetaWebhookEventDataUnion()
   575  }
   576  
   577  func (BetaWebhookSessionCreatedEventData) implBetaWebhookEventDataUnion()                {}
   578  func (BetaWebhookSessionPendingEventData) implBetaWebhookEventDataUnion()                {}
   579  func (BetaWebhookSessionRunningEventData) implBetaWebhookEventDataUnion()                {}
   580  func (BetaWebhookSessionIdledEventData) implBetaWebhookEventDataUnion()                  {}
   581  func (BetaWebhookSessionRequiresActionEventData) implBetaWebhookEventDataUnion()         {}
   582  func (BetaWebhookSessionArchivedEventData) implBetaWebhookEventDataUnion()               {}
   583  func (BetaWebhookSessionDeletedEventData) implBetaWebhookEventDataUnion()                {}
   584  func (BetaWebhookSessionStatusRescheduledEventData) implBetaWebhookEventDataUnion()      {}
   585  func (BetaWebhookSessionStatusRunStartedEventData) implBetaWebhookEventDataUnion()       {}
   586  func (BetaWebhookSessionStatusIdledEventData) implBetaWebhookEventDataUnion()            {}
   587  func (BetaWebhookSessionStatusTerminatedEventData) implBetaWebhookEventDataUnion()       {}
   588  func (BetaWebhookSessionThreadCreatedEventData) implBetaWebhookEventDataUnion()          {}
   589  func (BetaWebhookSessionThreadIdledEventData) implBetaWebhookEventDataUnion()            {}
   590  func (BetaWebhookSessionThreadTerminatedEventData) implBetaWebhookEventDataUnion()       {}
   591  func (BetaWebhookSessionOutcomeEvaluationEndedEventData) implBetaWebhookEventDataUnion() {}
   592  func (BetaWebhookVaultCreatedEventData) implBetaWebhookEventDataUnion()                  {}
   593  func (BetaWebhookVaultArchivedEventData) implBetaWebhookEventDataUnion()                 {}
   594  func (BetaWebhookVaultDeletedEventData) implBetaWebhookEventDataUnion()                  {}
   595  func (BetaWebhookVaultCredentialCreatedEventData) implBetaWebhookEventDataUnion()        {}
   596  func (BetaWebhookVaultCredentialArchivedEventData) implBetaWebhookEventDataUnion()       {}
   597  func (BetaWebhookVaultCredentialDeletedEventData) implBetaWebhookEventDataUnion()        {}
   598  func (BetaWebhookVaultCredentialRefreshFailedEventData) implBetaWebhookEventDataUnion()  {}
   599  func (BetaWebhookSessionUpdatedEventData) implBetaWebhookEventDataUnion()                {}
   600  func (BetaWebhookAgentCreatedEventData) implBetaWebhookEventDataUnion()                  {}
   601  func (BetaWebhookAgentArchivedEventData) implBetaWebhookEventDataUnion()                 {}
   602  func (BetaWebhookAgentDeletedEventData) implBetaWebhookEventDataUnion()                  {}
   603  func (BetaWebhookDeploymentPausedEventData) implBetaWebhookEventDataUnion()              {}
   604  func (BetaWebhookDeploymentRunFailedEventData) implBetaWebhookEventDataUnion()           {}
   605  func (BetaWebhookDeploymentCreatedEventData) implBetaWebhookEventDataUnion()             {}
   606  func (BetaWebhookDeploymentUpdatedEventData) implBetaWebhookEventDataUnion()             {}
   607  func (BetaWebhookDeploymentUnpausedEventData) implBetaWebhookEventDataUnion()            {}
   608  func (BetaWebhookAgentUpdatedEventData) implBetaWebhookEventDataUnion()                  {}
   609  func (BetaWebhookDeploymentArchivedEventData) implBetaWebhookEventDataUnion()            {}
   610  func (BetaWebhookDeploymentRunStartedEventData) implBetaWebhookEventDataUnion()          {}
   611  func (BetaWebhookDeploymentDeletedEventData) implBetaWebhookEventDataUnion()             {}
   612  func (BetaWebhookDeploymentRunSucceededEventData) implBetaWebhookEventDataUnion()        {}
   613  func (BetaWebhookEnvironmentCreatedEventData) implBetaWebhookEventDataUnion()            {}
   614  func (BetaWebhookEnvironmentUpdatedEventData) implBetaWebhookEventDataUnion()            {}
   615  func (BetaWebhookEnvironmentArchivedEventData) implBetaWebhookEventDataUnion()           {}
   616  func (BetaWebhookEnvironmentDeletedEventData) implBetaWebhookEventDataUnion()            {}
   617  func (BetaWebhookMemoryStoreCreatedEventData) implBetaWebhookEventDataUnion()            {}
   618  func (BetaWebhookMemoryStoreArchivedEventData) implBetaWebhookEventDataUnion()           {}
   619  func (BetaWebhookMemoryStoreDeletedEventData) implBetaWebhookEventDataUnion()            {}
   620  func (BetaWebhookSessionBudgetReachedEventData) implBetaWebhookEventDataUnion()          {}
   621  
   622  // Use the following switch statement to find the correct variant
   623  //
   624  //	switch variant := BetaWebhookEventDataUnion.AsAny().(type) {
   625  //	case anthropic.BetaWebhookSessionCreatedEventData:
   626  //	case anthropic.BetaWebhookSessionPendingEventData:
   627  //	case anthropic.BetaWebhookSessionRunningEventData:
   628  //	case anthropic.BetaWebhookSessionIdledEventData:
   629  //	case anthropic.BetaWebhookSessionRequiresActionEventData:
   630  //	case anthropic.BetaWebhookSessionArchivedEventData:
   631  //	case anthropic.BetaWebhookSessionDeletedEventData:
   632  //	case anthropic.BetaWebhookSessionStatusRescheduledEventData:
   633  //	case anthropic.BetaWebhookSessionStatusRunStartedEventData:
   634  //	case anthropic.BetaWebhookSessionStatusIdledEventData:
   635  //	case anthropic.BetaWebhookSessionStatusTerminatedEventData:
   636  //	case anthropic.BetaWebhookSessionThreadCreatedEventData:
   637  //	case anthropic.BetaWebhookSessionThreadIdledEventData:
   638  //	case anthropic.BetaWebhookSessionThreadTerminatedEventData:
   639  //	case anthropic.BetaWebhookSessionOutcomeEvaluationEndedEventData:
   640  //	case anthropic.BetaWebhookVaultCreatedEventData:
   641  //	case anthropic.BetaWebhookVaultArchivedEventData:
   642  //	case anthropic.BetaWebhookVaultDeletedEventData:
   643  //	case anthropic.BetaWebhookVaultCredentialCreatedEventData:
   644  //	case anthropic.BetaWebhookVaultCredentialArchivedEventData:
   645  //	case anthropic.BetaWebhookVaultCredentialDeletedEventData:
   646  //	case anthropic.BetaWebhookVaultCredentialRefreshFailedEventData:
   647  //	case anthropic.BetaWebhookSessionUpdatedEventData:
   648  //	case anthropic.BetaWebhookAgentCreatedEventData:
   649  //	case anthropic.BetaWebhookAgentArchivedEventData:
   650  //	case anthropic.BetaWebhookAgentDeletedEventData:
   651  //	case anthropic.BetaWebhookDeploymentPausedEventData:
   652  //	case anthropic.BetaWebhookDeploymentRunFailedEventData:
   653  //	case anthropic.BetaWebhookDeploymentCreatedEventData:
   654  //	case anthropic.BetaWebhookDeploymentUpdatedEventData:
   655  //	case anthropic.BetaWebhookDeploymentUnpausedEventData:
   656  //	case anthropic.BetaWebhookAgentUpdatedEventData:
   657  //	case anthropic.BetaWebhookDeploymentArchivedEventData:
   658  //	case anthropic.BetaWebhookDeploymentRunStartedEventData:
   659  //	case anthropic.BetaWebhookDeploymentDeletedEventData:
   660  //	case anthropic.BetaWebhookDeploymentRunSucceededEventData:
   661  //	case anthropic.BetaWebhookEnvironmentCreatedEventData:
   662  //	case anthropic.BetaWebhookEnvironmentUpdatedEventData:
   663  //	case anthropic.BetaWebhookEnvironmentArchivedEventData:
   664  //	case anthropic.BetaWebhookEnvironmentDeletedEventData:
   665  //	case anthropic.BetaWebhookMemoryStoreCreatedEventData:
   666  //	case anthropic.BetaWebhookMemoryStoreArchivedEventData:
   667  //	case anthropic.BetaWebhookMemoryStoreDeletedEventData:
   668  //	case anthropic.BetaWebhookSessionBudgetReachedEventData:
   669  //	default:
   670  //	  fmt.Errorf("no variant present")
   671  //	}
   672  func (u BetaWebhookEventDataUnion) AsAny() anyBetaWebhookEventData {
   673  	switch u.Type {
   674  	case "session.created":
   675  		return u.AsSessionCreated()
   676  	case "session.pending":
   677  		return u.AsSessionPending()
   678  	case "session.running":
   679  		return u.AsSessionRunning()
   680  	case "session.idled":
   681  		return u.AsSessionIdled()
   682  	case "session.requires_action":
   683  		return u.AsSessionRequiresAction()
   684  	case "session.archived":
   685  		return u.AsSessionArchived()
   686  	case "session.deleted":
   687  		return u.AsSessionDeleted()
   688  	case "session.status_rescheduled":
   689  		return u.AsSessionStatusRescheduled()
   690  	case "session.status_run_started":
   691  		return u.AsSessionStatusRunStarted()
   692  	case "session.status_idled":
   693  		return u.AsSessionStatusIdled()
   694  	case "session.status_terminated":
   695  		return u.AsSessionStatusTerminated()
   696  	case "session.thread_created":
   697  		return u.AsSessionThreadCreated()
   698  	case "session.thread_idled":
   699  		return u.AsSessionThreadIdled()
   700  	case "session.thread_terminated":
   701  		return u.AsSessionThreadTerminated()
   702  	case "session.outcome_evaluation_ended":
   703  		return u.AsSessionOutcomeEvaluationEnded()
   704  	case "vault.created":
   705  		return u.AsVaultCreated()
   706  	case "vault.archived":
   707  		return u.AsVaultArchived()
   708  	case "vault.deleted":
   709  		return u.AsVaultDeleted()
   710  	case "vault_credential.created":
   711  		return u.AsVaultCredentialCreated()
   712  	case "vault_credential.archived":
   713  		return u.AsVaultCredentialArchived()
   714  	case "vault_credential.deleted":
   715  		return u.AsVaultCredentialDeleted()
   716  	case "vault_credential.refresh_failed":
   717  		return u.AsVaultCredentialRefreshFailed()
   718  	case "session.updated":
   719  		return u.AsSessionUpdated()
   720  	case "agent.created":
   721  		return u.AsAgentCreated()
   722  	case "agent.archived":
   723  		return u.AsAgentArchived()
   724  	case "agent.deleted":
   725  		return u.AsAgentDeleted()
   726  	case "deployment.paused":
   727  		return u.AsDeploymentPaused()
   728  	case "deployment_run.failed":
   729  		return u.AsDeploymentRunFailed()
   730  	case "deployment.created":
   731  		return u.AsDeploymentCreated()
   732  	case "deployment.updated":
   733  		return u.AsDeploymentUpdated()
   734  	case "deployment.unpaused":
   735  		return u.AsDeploymentUnpaused()
   736  	case "agent.updated":
   737  		return u.AsAgentUpdated()
   738  	case "deployment.archived":
   739  		return u.AsDeploymentArchived()
   740  	case "deployment_run.started":
   741  		return u.AsDeploymentRunStarted()
   742  	case "deployment.deleted":
   743  		return u.AsDeploymentDeleted()
   744  	case "deployment_run.succeeded":
   745  		return u.AsDeploymentRunSucceeded()
   746  	case "environment.created":
   747  		return u.AsEnvironmentCreated()
   748  	case "environment.updated":
   749  		return u.AsEnvironmentUpdated()
   750  	case "environment.archived":
   751  		return u.AsEnvironmentArchived()
   752  	case "environment.deleted":
   753  		return u.AsEnvironmentDeleted()
   754  	case "memory_store.created":
   755  		return u.AsMemoryStoreCreated()
   756  	case "memory_store.archived":
   757  		return u.AsMemoryStoreArchived()
   758  	case "memory_store.deleted":
   759  		return u.AsMemoryStoreDeleted()
   760  	case "session.budget_reached":
   761  		return u.AsSessionBudgetReached()
   762  	}
   763  	return nil
   764  }
   765  
   766  func (u BetaWebhookEventDataUnion) AsSessionCreated() (v BetaWebhookSessionCreatedEventData) {
   767  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   768  	return
   769  }
   770  
   771  func (u BetaWebhookEventDataUnion) AsSessionPending() (v BetaWebhookSessionPendingEventData) {
   772  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   773  	return
   774  }
   775  
   776  func (u BetaWebhookEventDataUnion) AsSessionRunning() (v BetaWebhookSessionRunningEventData) {
   777  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   778  	return
   779  }
   780  
   781  func (u BetaWebhookEventDataUnion) AsSessionIdled() (v BetaWebhookSessionIdledEventData) {
   782  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   783  	return
   784  }
   785  
   786  func (u BetaWebhookEventDataUnion) AsSessionRequiresAction() (v BetaWebhookSessionRequiresActionEventData) {
   787  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   788  	return
   789  }
   790  
   791  func (u BetaWebhookEventDataUnion) AsSessionArchived() (v BetaWebhookSessionArchivedEventData) {
   792  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   793  	return
   794  }
   795  
   796  func (u BetaWebhookEventDataUnion) AsSessionDeleted() (v BetaWebhookSessionDeletedEventData) {
   797  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   798  	return
   799  }
   800  
   801  func (u BetaWebhookEventDataUnion) AsSessionStatusRescheduled() (v BetaWebhookSessionStatusRescheduledEventData) {
   802  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   803  	return
   804  }
   805  
   806  func (u BetaWebhookEventDataUnion) AsSessionStatusRunStarted() (v BetaWebhookSessionStatusRunStartedEventData) {
   807  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   808  	return
   809  }
   810  
   811  func (u BetaWebhookEventDataUnion) AsSessionStatusIdled() (v BetaWebhookSessionStatusIdledEventData) {
   812  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   813  	return
   814  }
   815  
   816  func (u BetaWebhookEventDataUnion) AsSessionStatusTerminated() (v BetaWebhookSessionStatusTerminatedEventData) {
   817  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   818  	return
   819  }
   820  
   821  func (u BetaWebhookEventDataUnion) AsSessionThreadCreated() (v BetaWebhookSessionThreadCreatedEventData) {
   822  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   823  	return
   824  }
   825  
   826  func (u BetaWebhookEventDataUnion) AsSessionThreadIdled() (v BetaWebhookSessionThreadIdledEventData) {
   827  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   828  	return
   829  }
   830  
   831  func (u BetaWebhookEventDataUnion) AsSessionThreadTerminated() (v BetaWebhookSessionThreadTerminatedEventData) {
   832  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   833  	return
   834  }
   835  
   836  func (u BetaWebhookEventDataUnion) AsSessionOutcomeEvaluationEnded() (v BetaWebhookSessionOutcomeEvaluationEndedEventData) {
   837  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   838  	return
   839  }
   840  
   841  func (u BetaWebhookEventDataUnion) AsVaultCreated() (v BetaWebhookVaultCreatedEventData) {
   842  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   843  	return
   844  }
   845  
   846  func (u BetaWebhookEventDataUnion) AsVaultArchived() (v BetaWebhookVaultArchivedEventData) {
   847  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   848  	return
   849  }
   850  
   851  func (u BetaWebhookEventDataUnion) AsVaultDeleted() (v BetaWebhookVaultDeletedEventData) {
   852  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   853  	return
   854  }
   855  
   856  func (u BetaWebhookEventDataUnion) AsVaultCredentialCreated() (v BetaWebhookVaultCredentialCreatedEventData) {
   857  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   858  	return
   859  }
   860  
   861  func (u BetaWebhookEventDataUnion) AsVaultCredentialArchived() (v BetaWebhookVaultCredentialArchivedEventData) {
   862  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   863  	return
   864  }
   865  
   866  func (u BetaWebhookEventDataUnion) AsVaultCredentialDeleted() (v BetaWebhookVaultCredentialDeletedEventData) {
   867  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   868  	return
   869  }
   870  
   871  func (u BetaWebhookEventDataUnion) AsVaultCredentialRefreshFailed() (v BetaWebhookVaultCredentialRefreshFailedEventData) {
   872  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   873  	return
   874  }
   875  
   876  func (u BetaWebhookEventDataUnion) AsSessionUpdated() (v BetaWebhookSessionUpdatedEventData) {
   877  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   878  	return
   879  }
   880  
   881  func (u BetaWebhookEventDataUnion) AsAgentCreated() (v BetaWebhookAgentCreatedEventData) {
   882  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   883  	return
   884  }
   885  
   886  func (u BetaWebhookEventDataUnion) AsAgentArchived() (v BetaWebhookAgentArchivedEventData) {
   887  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   888  	return
   889  }
   890  
   891  func (u BetaWebhookEventDataUnion) AsAgentDeleted() (v BetaWebhookAgentDeletedEventData) {
   892  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   893  	return
   894  }
   895  
   896  func (u BetaWebhookEventDataUnion) AsDeploymentPaused() (v BetaWebhookDeploymentPausedEventData) {
   897  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   898  	return
   899  }
   900  
   901  func (u BetaWebhookEventDataUnion) AsDeploymentRunFailed() (v BetaWebhookDeploymentRunFailedEventData) {
   902  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   903  	return
   904  }
   905  
   906  func (u BetaWebhookEventDataUnion) AsDeploymentCreated() (v BetaWebhookDeploymentCreatedEventData) {
   907  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   908  	return
   909  }
   910  
   911  func (u BetaWebhookEventDataUnion) AsDeploymentUpdated() (v BetaWebhookDeploymentUpdatedEventData) {
   912  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   913  	return
   914  }
   915  
   916  func (u BetaWebhookEventDataUnion) AsDeploymentUnpaused() (v BetaWebhookDeploymentUnpausedEventData) {
   917  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   918  	return
   919  }
   920  
   921  func (u BetaWebhookEventDataUnion) AsAgentUpdated() (v BetaWebhookAgentUpdatedEventData) {
   922  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   923  	return
   924  }
   925  
   926  func (u BetaWebhookEventDataUnion) AsDeploymentArchived() (v BetaWebhookDeploymentArchivedEventData) {
   927  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   928  	return
   929  }
   930  
   931  func (u BetaWebhookEventDataUnion) AsDeploymentRunStarted() (v BetaWebhookDeploymentRunStartedEventData) {
   932  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   933  	return
   934  }
   935  
   936  func (u BetaWebhookEventDataUnion) AsDeploymentDeleted() (v BetaWebhookDeploymentDeletedEventData) {
   937  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   938  	return
   939  }
   940  
   941  func (u BetaWebhookEventDataUnion) AsDeploymentRunSucceeded() (v BetaWebhookDeploymentRunSucceededEventData) {
   942  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   943  	return
   944  }
   945  
   946  func (u BetaWebhookEventDataUnion) AsEnvironmentCreated() (v BetaWebhookEnvironmentCreatedEventData) {
   947  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   948  	return
   949  }
   950  
   951  func (u BetaWebhookEventDataUnion) AsEnvironmentUpdated() (v BetaWebhookEnvironmentUpdatedEventData) {
   952  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   953  	return
   954  }
   955  
   956  func (u BetaWebhookEventDataUnion) AsEnvironmentArchived() (v BetaWebhookEnvironmentArchivedEventData) {
   957  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   958  	return
   959  }
   960  
   961  func (u BetaWebhookEventDataUnion) AsEnvironmentDeleted() (v BetaWebhookEnvironmentDeletedEventData) {
   962  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   963  	return
   964  }
   965  
   966  func (u BetaWebhookEventDataUnion) AsMemoryStoreCreated() (v BetaWebhookMemoryStoreCreatedEventData) {
   967  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   968  	return
   969  }
   970  
   971  func (u BetaWebhookEventDataUnion) AsMemoryStoreArchived() (v BetaWebhookMemoryStoreArchivedEventData) {
   972  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   973  	return
   974  }
   975  
   976  func (u BetaWebhookEventDataUnion) AsMemoryStoreDeleted() (v BetaWebhookMemoryStoreDeletedEventData) {
   977  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   978  	return
   979  }
   980  
   981  func (u BetaWebhookEventDataUnion) AsSessionBudgetReached() (v BetaWebhookSessionBudgetReachedEventData) {
   982  	apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v)
   983  	return
   984  }
   985  
   986  // Returns the unmodified JSON received from the API
   987  func (u BetaWebhookEventDataUnion) RawJSON() string { return u.JSON.raw }
   988  
   989  func (r *BetaWebhookEventDataUnion) UnmarshalJSON(data []byte) error {
   990  	return apijson.UnmarshalRoot(data, r)
   991  }
   992  
   993  type BetaWebhookMemoryStoreArchivedEventData struct {
   994  	// ID of the memory store that triggered the event.
   995  	ID             string                       `json:"id" api:"required"`
   996  	OrganizationID string                       `json:"organization_id" api:"required"`
   997  	Type           constant.MemoryStoreArchived `json:"type" default:"memory_store.archived"`
   998  	WorkspaceID    string                       `json:"workspace_id" api:"required"`
   999  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1000  	JSON struct {
  1001  		ID             respjson.Field
  1002  		OrganizationID respjson.Field
  1003  		Type           respjson.Field
  1004  		WorkspaceID    respjson.Field
  1005  		ExtraFields    map[string]respjson.Field
  1006  		raw            string
  1007  	} `json:"-"`
  1008  }
  1009  
  1010  // Returns the unmodified JSON received from the API
  1011  func (r BetaWebhookMemoryStoreArchivedEventData) RawJSON() string { return r.JSON.raw }
  1012  func (r *BetaWebhookMemoryStoreArchivedEventData) UnmarshalJSON(data []byte) error {
  1013  	return apijson.UnmarshalRoot(data, r)
  1014  }
  1015  
  1016  type BetaWebhookMemoryStoreCreatedEventData struct {
  1017  	// ID of the memory store that triggered the event.
  1018  	ID             string                      `json:"id" api:"required"`
  1019  	OrganizationID string                      `json:"organization_id" api:"required"`
  1020  	Type           constant.MemoryStoreCreated `json:"type" default:"memory_store.created"`
  1021  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
  1022  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1023  	JSON struct {
  1024  		ID             respjson.Field
  1025  		OrganizationID respjson.Field
  1026  		Type           respjson.Field
  1027  		WorkspaceID    respjson.Field
  1028  		ExtraFields    map[string]respjson.Field
  1029  		raw            string
  1030  	} `json:"-"`
  1031  }
  1032  
  1033  // Returns the unmodified JSON received from the API
  1034  func (r BetaWebhookMemoryStoreCreatedEventData) RawJSON() string { return r.JSON.raw }
  1035  func (r *BetaWebhookMemoryStoreCreatedEventData) UnmarshalJSON(data []byte) error {
  1036  	return apijson.UnmarshalRoot(data, r)
  1037  }
  1038  
  1039  type BetaWebhookMemoryStoreDeletedEventData struct {
  1040  	// ID of the memory store that triggered the event.
  1041  	ID             string                      `json:"id" api:"required"`
  1042  	OrganizationID string                      `json:"organization_id" api:"required"`
  1043  	Type           constant.MemoryStoreDeleted `json:"type" default:"memory_store.deleted"`
  1044  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
  1045  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1046  	JSON struct {
  1047  		ID             respjson.Field
  1048  		OrganizationID respjson.Field
  1049  		Type           respjson.Field
  1050  		WorkspaceID    respjson.Field
  1051  		ExtraFields    map[string]respjson.Field
  1052  		raw            string
  1053  	} `json:"-"`
  1054  }
  1055  
  1056  // Returns the unmodified JSON received from the API
  1057  func (r BetaWebhookMemoryStoreDeletedEventData) RawJSON() string { return r.JSON.raw }
  1058  func (r *BetaWebhookMemoryStoreDeletedEventData) UnmarshalJSON(data []byte) error {
  1059  	return apijson.UnmarshalRoot(data, r)
  1060  }
  1061  
  1062  type BetaWebhookSessionArchivedEventData struct {
  1063  	// ID of the session that triggered the event.
  1064  	ID             string                   `json:"id" api:"required"`
  1065  	OrganizationID string                   `json:"organization_id" api:"required"`
  1066  	Type           constant.SessionArchived `json:"type" default:"session.archived"`
  1067  	WorkspaceID    string                   `json:"workspace_id" api:"required"`
  1068  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1069  	JSON struct {
  1070  		ID             respjson.Field
  1071  		OrganizationID respjson.Field
  1072  		Type           respjson.Field
  1073  		WorkspaceID    respjson.Field
  1074  		ExtraFields    map[string]respjson.Field
  1075  		raw            string
  1076  	} `json:"-"`
  1077  }
  1078  
  1079  // Returns the unmodified JSON received from the API
  1080  func (r BetaWebhookSessionArchivedEventData) RawJSON() string { return r.JSON.raw }
  1081  func (r *BetaWebhookSessionArchivedEventData) UnmarshalJSON(data []byte) error {
  1082  	return apijson.UnmarshalRoot(data, r)
  1083  }
  1084  
  1085  type BetaWebhookSessionBudgetReachedEventData struct {
  1086  	// ID of the session that triggered the event.
  1087  	ID             string                        `json:"id" api:"required"`
  1088  	OrganizationID string                        `json:"organization_id" api:"required"`
  1089  	Type           constant.SessionBudgetReached `json:"type" default:"session.budget_reached"`
  1090  	WorkspaceID    string                        `json:"workspace_id" api:"required"`
  1091  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1092  	JSON struct {
  1093  		ID             respjson.Field
  1094  		OrganizationID respjson.Field
  1095  		Type           respjson.Field
  1096  		WorkspaceID    respjson.Field
  1097  		ExtraFields    map[string]respjson.Field
  1098  		raw            string
  1099  	} `json:"-"`
  1100  }
  1101  
  1102  // Returns the unmodified JSON received from the API
  1103  func (r BetaWebhookSessionBudgetReachedEventData) RawJSON() string { return r.JSON.raw }
  1104  func (r *BetaWebhookSessionBudgetReachedEventData) UnmarshalJSON(data []byte) error {
  1105  	return apijson.UnmarshalRoot(data, r)
  1106  }
  1107  
  1108  type BetaWebhookSessionCreatedEventData struct {
  1109  	// ID of the session that triggered the event.
  1110  	ID             string                  `json:"id" api:"required"`
  1111  	OrganizationID string                  `json:"organization_id" api:"required"`
  1112  	Type           constant.SessionCreated `json:"type" default:"session.created"`
  1113  	WorkspaceID    string                  `json:"workspace_id" api:"required"`
  1114  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1115  	JSON struct {
  1116  		ID             respjson.Field
  1117  		OrganizationID respjson.Field
  1118  		Type           respjson.Field
  1119  		WorkspaceID    respjson.Field
  1120  		ExtraFields    map[string]respjson.Field
  1121  		raw            string
  1122  	} `json:"-"`
  1123  }
  1124  
  1125  // Returns the unmodified JSON received from the API
  1126  func (r BetaWebhookSessionCreatedEventData) RawJSON() string { return r.JSON.raw }
  1127  func (r *BetaWebhookSessionCreatedEventData) UnmarshalJSON(data []byte) error {
  1128  	return apijson.UnmarshalRoot(data, r)
  1129  }
  1130  
  1131  type BetaWebhookSessionDeletedEventData struct {
  1132  	// ID of the session that triggered the event.
  1133  	ID             string                  `json:"id" api:"required"`
  1134  	OrganizationID string                  `json:"organization_id" api:"required"`
  1135  	Type           constant.SessionDeleted `json:"type" default:"session.deleted"`
  1136  	WorkspaceID    string                  `json:"workspace_id" api:"required"`
  1137  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1138  	JSON struct {
  1139  		ID             respjson.Field
  1140  		OrganizationID respjson.Field
  1141  		Type           respjson.Field
  1142  		WorkspaceID    respjson.Field
  1143  		ExtraFields    map[string]respjson.Field
  1144  		raw            string
  1145  	} `json:"-"`
  1146  }
  1147  
  1148  // Returns the unmodified JSON received from the API
  1149  func (r BetaWebhookSessionDeletedEventData) RawJSON() string { return r.JSON.raw }
  1150  func (r *BetaWebhookSessionDeletedEventData) UnmarshalJSON(data []byte) error {
  1151  	return apijson.UnmarshalRoot(data, r)
  1152  }
  1153  
  1154  type BetaWebhookSessionIdledEventData struct {
  1155  	// ID of the session that triggered the event.
  1156  	ID             string                `json:"id" api:"required"`
  1157  	OrganizationID string                `json:"organization_id" api:"required"`
  1158  	Type           constant.SessionIdled `json:"type" default:"session.idled"`
  1159  	WorkspaceID    string                `json:"workspace_id" api:"required"`
  1160  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1161  	JSON struct {
  1162  		ID             respjson.Field
  1163  		OrganizationID respjson.Field
  1164  		Type           respjson.Field
  1165  		WorkspaceID    respjson.Field
  1166  		ExtraFields    map[string]respjson.Field
  1167  		raw            string
  1168  	} `json:"-"`
  1169  }
  1170  
  1171  // Returns the unmodified JSON received from the API
  1172  func (r BetaWebhookSessionIdledEventData) RawJSON() string { return r.JSON.raw }
  1173  func (r *BetaWebhookSessionIdledEventData) UnmarshalJSON(data []byte) error {
  1174  	return apijson.UnmarshalRoot(data, r)
  1175  }
  1176  
  1177  type BetaWebhookSessionOutcomeEvaluationEndedEventData struct {
  1178  	// ID of the session that triggered the event.
  1179  	ID             string                                 `json:"id" api:"required"`
  1180  	OrganizationID string                                 `json:"organization_id" api:"required"`
  1181  	Type           constant.SessionOutcomeEvaluationEnded `json:"type" default:"session.outcome_evaluation_ended"`
  1182  	WorkspaceID    string                                 `json:"workspace_id" api:"required"`
  1183  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1184  	JSON struct {
  1185  		ID             respjson.Field
  1186  		OrganizationID respjson.Field
  1187  		Type           respjson.Field
  1188  		WorkspaceID    respjson.Field
  1189  		ExtraFields    map[string]respjson.Field
  1190  		raw            string
  1191  	} `json:"-"`
  1192  }
  1193  
  1194  // Returns the unmodified JSON received from the API
  1195  func (r BetaWebhookSessionOutcomeEvaluationEndedEventData) RawJSON() string { return r.JSON.raw }
  1196  func (r *BetaWebhookSessionOutcomeEvaluationEndedEventData) UnmarshalJSON(data []byte) error {
  1197  	return apijson.UnmarshalRoot(data, r)
  1198  }
  1199  
  1200  type BetaWebhookSessionPendingEventData struct {
  1201  	// ID of the session that triggered the event.
  1202  	ID             string                  `json:"id" api:"required"`
  1203  	OrganizationID string                  `json:"organization_id" api:"required"`
  1204  	Type           constant.SessionPending `json:"type" default:"session.pending"`
  1205  	WorkspaceID    string                  `json:"workspace_id" api:"required"`
  1206  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1207  	JSON struct {
  1208  		ID             respjson.Field
  1209  		OrganizationID respjson.Field
  1210  		Type           respjson.Field
  1211  		WorkspaceID    respjson.Field
  1212  		ExtraFields    map[string]respjson.Field
  1213  		raw            string
  1214  	} `json:"-"`
  1215  }
  1216  
  1217  // Returns the unmodified JSON received from the API
  1218  func (r BetaWebhookSessionPendingEventData) RawJSON() string { return r.JSON.raw }
  1219  func (r *BetaWebhookSessionPendingEventData) UnmarshalJSON(data []byte) error {
  1220  	return apijson.UnmarshalRoot(data, r)
  1221  }
  1222  
  1223  type BetaWebhookSessionRequiresActionEventData struct {
  1224  	// ID of the session that triggered the event.
  1225  	ID             string                         `json:"id" api:"required"`
  1226  	OrganizationID string                         `json:"organization_id" api:"required"`
  1227  	Type           constant.SessionRequiresAction `json:"type" default:"session.requires_action"`
  1228  	WorkspaceID    string                         `json:"workspace_id" api:"required"`
  1229  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1230  	JSON struct {
  1231  		ID             respjson.Field
  1232  		OrganizationID respjson.Field
  1233  		Type           respjson.Field
  1234  		WorkspaceID    respjson.Field
  1235  		ExtraFields    map[string]respjson.Field
  1236  		raw            string
  1237  	} `json:"-"`
  1238  }
  1239  
  1240  // Returns the unmodified JSON received from the API
  1241  func (r BetaWebhookSessionRequiresActionEventData) RawJSON() string { return r.JSON.raw }
  1242  func (r *BetaWebhookSessionRequiresActionEventData) UnmarshalJSON(data []byte) error {
  1243  	return apijson.UnmarshalRoot(data, r)
  1244  }
  1245  
  1246  type BetaWebhookSessionRunningEventData struct {
  1247  	// ID of the session that triggered the event.
  1248  	ID             string                  `json:"id" api:"required"`
  1249  	OrganizationID string                  `json:"organization_id" api:"required"`
  1250  	Type           constant.SessionRunning `json:"type" default:"session.running"`
  1251  	WorkspaceID    string                  `json:"workspace_id" api:"required"`
  1252  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1253  	JSON struct {
  1254  		ID             respjson.Field
  1255  		OrganizationID respjson.Field
  1256  		Type           respjson.Field
  1257  		WorkspaceID    respjson.Field
  1258  		ExtraFields    map[string]respjson.Field
  1259  		raw            string
  1260  	} `json:"-"`
  1261  }
  1262  
  1263  // Returns the unmodified JSON received from the API
  1264  func (r BetaWebhookSessionRunningEventData) RawJSON() string { return r.JSON.raw }
  1265  func (r *BetaWebhookSessionRunningEventData) UnmarshalJSON(data []byte) error {
  1266  	return apijson.UnmarshalRoot(data, r)
  1267  }
  1268  
  1269  type BetaWebhookSessionStatusIdledEventData struct {
  1270  	// ID of the session that triggered the event.
  1271  	ID             string                      `json:"id" api:"required"`
  1272  	OrganizationID string                      `json:"organization_id" api:"required"`
  1273  	Type           constant.SessionStatusIdled `json:"type" default:"session.status_idled"`
  1274  	WorkspaceID    string                      `json:"workspace_id" api:"required"`
  1275  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1276  	JSON struct {
  1277  		ID             respjson.Field
  1278  		OrganizationID respjson.Field
  1279  		Type           respjson.Field
  1280  		WorkspaceID    respjson.Field
  1281  		ExtraFields    map[string]respjson.Field
  1282  		raw            string
  1283  	} `json:"-"`
  1284  }
  1285  
  1286  // Returns the unmodified JSON received from the API
  1287  func (r BetaWebhookSessionStatusIdledEventData) RawJSON() string { return r.JSON.raw }
  1288  func (r *BetaWebhookSessionStatusIdledEventData) UnmarshalJSON(data []byte) error {
  1289  	return apijson.UnmarshalRoot(data, r)
  1290  }
  1291  
  1292  type BetaWebhookSessionStatusRescheduledEventData struct {
  1293  	// ID of the session that triggered the event.
  1294  	ID             string                            `json:"id" api:"required"`
  1295  	OrganizationID string                            `json:"organization_id" api:"required"`
  1296  	Type           constant.SessionStatusRescheduled `json:"type" default:"session.status_rescheduled"`
  1297  	WorkspaceID    string                            `json:"workspace_id" api:"required"`
  1298  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1299  	JSON struct {
  1300  		ID             respjson.Field
  1301  		OrganizationID respjson.Field
  1302  		Type           respjson.Field
  1303  		WorkspaceID    respjson.Field
  1304  		ExtraFields    map[string]respjson.Field
  1305  		raw            string
  1306  	} `json:"-"`
  1307  }
  1308  
  1309  // Returns the unmodified JSON received from the API
  1310  func (r BetaWebhookSessionStatusRescheduledEventData) RawJSON() string { return r.JSON.raw }
  1311  func (r *BetaWebhookSessionStatusRescheduledEventData) UnmarshalJSON(data []byte) error {
  1312  	return apijson.UnmarshalRoot(data, r)
  1313  }
  1314  
  1315  type BetaWebhookSessionStatusRunStartedEventData struct {
  1316  	// ID of the session that triggered the event.
  1317  	ID             string                           `json:"id" api:"required"`
  1318  	OrganizationID string                           `json:"organization_id" api:"required"`
  1319  	Type           constant.SessionStatusRunStarted `json:"type" default:"session.status_run_started"`
  1320  	WorkspaceID    string                           `json:"workspace_id" api:"required"`
  1321  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1322  	JSON struct {
  1323  		ID             respjson.Field
  1324  		OrganizationID respjson.Field
  1325  		Type           respjson.Field
  1326  		WorkspaceID    respjson.Field
  1327  		ExtraFields    map[string]respjson.Field
  1328  		raw            string
  1329  	} `json:"-"`
  1330  }
  1331  
  1332  // Returns the unmodified JSON received from the API
  1333  func (r BetaWebhookSessionStatusRunStartedEventData) RawJSON() string { return r.JSON.raw }
  1334  func (r *BetaWebhookSessionStatusRunStartedEventData) UnmarshalJSON(data []byte) error {
  1335  	return apijson.UnmarshalRoot(data, r)
  1336  }
  1337  
  1338  type BetaWebhookSessionStatusTerminatedEventData struct {
  1339  	// ID of the session that triggered the event.
  1340  	ID             string                           `json:"id" api:"required"`
  1341  	OrganizationID string                           `json:"organization_id" api:"required"`
  1342  	Type           constant.SessionStatusTerminated `json:"type" default:"session.status_terminated"`
  1343  	WorkspaceID    string                           `json:"workspace_id" api:"required"`
  1344  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1345  	JSON struct {
  1346  		ID             respjson.Field
  1347  		OrganizationID respjson.Field
  1348  		Type           respjson.Field
  1349  		WorkspaceID    respjson.Field
  1350  		ExtraFields    map[string]respjson.Field
  1351  		raw            string
  1352  	} `json:"-"`
  1353  }
  1354  
  1355  // Returns the unmodified JSON received from the API
  1356  func (r BetaWebhookSessionStatusTerminatedEventData) RawJSON() string { return r.JSON.raw }
  1357  func (r *BetaWebhookSessionStatusTerminatedEventData) UnmarshalJSON(data []byte) error {
  1358  	return apijson.UnmarshalRoot(data, r)
  1359  }
  1360  
  1361  type BetaWebhookSessionThreadCreatedEventData struct {
  1362  	// ID of the session that triggered the event.
  1363  	ID             string `json:"id" api:"required"`
  1364  	OrganizationID string `json:"organization_id" api:"required"`
  1365  	// ID of the session thread this event refers to.
  1366  	SessionThreadID string                        `json:"session_thread_id" api:"required"`
  1367  	Type            constant.SessionThreadCreated `json:"type" default:"session.thread_created"`
  1368  	WorkspaceID     string                        `json:"workspace_id" api:"required"`
  1369  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1370  	JSON struct {
  1371  		ID              respjson.Field
  1372  		OrganizationID  respjson.Field
  1373  		SessionThreadID respjson.Field
  1374  		Type            respjson.Field
  1375  		WorkspaceID     respjson.Field
  1376  		ExtraFields     map[string]respjson.Field
  1377  		raw             string
  1378  	} `json:"-"`
  1379  }
  1380  
  1381  // Returns the unmodified JSON received from the API
  1382  func (r BetaWebhookSessionThreadCreatedEventData) RawJSON() string { return r.JSON.raw }
  1383  func (r *BetaWebhookSessionThreadCreatedEventData) UnmarshalJSON(data []byte) error {
  1384  	return apijson.UnmarshalRoot(data, r)
  1385  }
  1386  
  1387  type BetaWebhookSessionThreadIdledEventData struct {
  1388  	// ID of the session that triggered the event.
  1389  	ID             string `json:"id" api:"required"`
  1390  	OrganizationID string `json:"organization_id" api:"required"`
  1391  	// ID of the session thread this event refers to.
  1392  	SessionThreadID string                      `json:"session_thread_id" api:"required"`
  1393  	Type            constant.SessionThreadIdled `json:"type" default:"session.thread_idled"`
  1394  	WorkspaceID     string                      `json:"workspace_id" api:"required"`
  1395  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1396  	JSON struct {
  1397  		ID              respjson.Field
  1398  		OrganizationID  respjson.Field
  1399  		SessionThreadID respjson.Field
  1400  		Type            respjson.Field
  1401  		WorkspaceID     respjson.Field
  1402  		ExtraFields     map[string]respjson.Field
  1403  		raw             string
  1404  	} `json:"-"`
  1405  }
  1406  
  1407  // Returns the unmodified JSON received from the API
  1408  func (r BetaWebhookSessionThreadIdledEventData) RawJSON() string { return r.JSON.raw }
  1409  func (r *BetaWebhookSessionThreadIdledEventData) UnmarshalJSON(data []byte) error {
  1410  	return apijson.UnmarshalRoot(data, r)
  1411  }
  1412  
  1413  type BetaWebhookSessionThreadTerminatedEventData struct {
  1414  	// ID of the session that triggered the event.
  1415  	ID             string `json:"id" api:"required"`
  1416  	OrganizationID string `json:"organization_id" api:"required"`
  1417  	// ID of the session thread this event refers to.
  1418  	SessionThreadID string                           `json:"session_thread_id" api:"required"`
  1419  	Type            constant.SessionThreadTerminated `json:"type" default:"session.thread_terminated"`
  1420  	WorkspaceID     string                           `json:"workspace_id" api:"required"`
  1421  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1422  	JSON struct {
  1423  		ID              respjson.Field
  1424  		OrganizationID  respjson.Field
  1425  		SessionThreadID respjson.Field
  1426  		Type            respjson.Field
  1427  		WorkspaceID     respjson.Field
  1428  		ExtraFields     map[string]respjson.Field
  1429  		raw             string
  1430  	} `json:"-"`
  1431  }
  1432  
  1433  // Returns the unmodified JSON received from the API
  1434  func (r BetaWebhookSessionThreadTerminatedEventData) RawJSON() string { return r.JSON.raw }
  1435  func (r *BetaWebhookSessionThreadTerminatedEventData) UnmarshalJSON(data []byte) error {
  1436  	return apijson.UnmarshalRoot(data, r)
  1437  }
  1438  
  1439  type BetaWebhookSessionUpdatedEventData struct {
  1440  	// ID of the session that triggered the event.
  1441  	ID             string                  `json:"id" api:"required"`
  1442  	OrganizationID string                  `json:"organization_id" api:"required"`
  1443  	Type           constant.SessionUpdated `json:"type" default:"session.updated"`
  1444  	WorkspaceID    string                  `json:"workspace_id" api:"required"`
  1445  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1446  	JSON struct {
  1447  		ID             respjson.Field
  1448  		OrganizationID respjson.Field
  1449  		Type           respjson.Field
  1450  		WorkspaceID    respjson.Field
  1451  		ExtraFields    map[string]respjson.Field
  1452  		raw            string
  1453  	} `json:"-"`
  1454  }
  1455  
  1456  // Returns the unmodified JSON received from the API
  1457  func (r BetaWebhookSessionUpdatedEventData) RawJSON() string { return r.JSON.raw }
  1458  func (r *BetaWebhookSessionUpdatedEventData) UnmarshalJSON(data []byte) error {
  1459  	return apijson.UnmarshalRoot(data, r)
  1460  }
  1461  
  1462  type BetaWebhookVaultArchivedEventData struct {
  1463  	// ID of the vault that triggered the event.
  1464  	ID             string                 `json:"id" api:"required"`
  1465  	OrganizationID string                 `json:"organization_id" api:"required"`
  1466  	Type           constant.VaultArchived `json:"type" default:"vault.archived"`
  1467  	WorkspaceID    string                 `json:"workspace_id" api:"required"`
  1468  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1469  	JSON struct {
  1470  		ID             respjson.Field
  1471  		OrganizationID respjson.Field
  1472  		Type           respjson.Field
  1473  		WorkspaceID    respjson.Field
  1474  		ExtraFields    map[string]respjson.Field
  1475  		raw            string
  1476  	} `json:"-"`
  1477  }
  1478  
  1479  // Returns the unmodified JSON received from the API
  1480  func (r BetaWebhookVaultArchivedEventData) RawJSON() string { return r.JSON.raw }
  1481  func (r *BetaWebhookVaultArchivedEventData) UnmarshalJSON(data []byte) error {
  1482  	return apijson.UnmarshalRoot(data, r)
  1483  }
  1484  
  1485  type BetaWebhookVaultCreatedEventData struct {
  1486  	// ID of the vault that triggered the event.
  1487  	ID             string                `json:"id" api:"required"`
  1488  	OrganizationID string                `json:"organization_id" api:"required"`
  1489  	Type           constant.VaultCreated `json:"type" default:"vault.created"`
  1490  	WorkspaceID    string                `json:"workspace_id" api:"required"`
  1491  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1492  	JSON struct {
  1493  		ID             respjson.Field
  1494  		OrganizationID respjson.Field
  1495  		Type           respjson.Field
  1496  		WorkspaceID    respjson.Field
  1497  		ExtraFields    map[string]respjson.Field
  1498  		raw            string
  1499  	} `json:"-"`
  1500  }
  1501  
  1502  // Returns the unmodified JSON received from the API
  1503  func (r BetaWebhookVaultCreatedEventData) RawJSON() string { return r.JSON.raw }
  1504  func (r *BetaWebhookVaultCreatedEventData) UnmarshalJSON(data []byte) error {
  1505  	return apijson.UnmarshalRoot(data, r)
  1506  }
  1507  
  1508  type BetaWebhookVaultCredentialArchivedEventData struct {
  1509  	// ID of the vault credential that triggered the event.
  1510  	ID             string                           `json:"id" api:"required"`
  1511  	OrganizationID string                           `json:"organization_id" api:"required"`
  1512  	Type           constant.VaultCredentialArchived `json:"type" default:"vault_credential.archived"`
  1513  	// ID of the vault that owns this credential.
  1514  	VaultID     string `json:"vault_id" api:"required"`
  1515  	WorkspaceID string `json:"workspace_id" api:"required"`
  1516  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1517  	JSON struct {
  1518  		ID             respjson.Field
  1519  		OrganizationID respjson.Field
  1520  		Type           respjson.Field
  1521  		VaultID        respjson.Field
  1522  		WorkspaceID    respjson.Field
  1523  		ExtraFields    map[string]respjson.Field
  1524  		raw            string
  1525  	} `json:"-"`
  1526  }
  1527  
  1528  // Returns the unmodified JSON received from the API
  1529  func (r BetaWebhookVaultCredentialArchivedEventData) RawJSON() string { return r.JSON.raw }
  1530  func (r *BetaWebhookVaultCredentialArchivedEventData) UnmarshalJSON(data []byte) error {
  1531  	return apijson.UnmarshalRoot(data, r)
  1532  }
  1533  
  1534  type BetaWebhookVaultCredentialCreatedEventData struct {
  1535  	// ID of the vault credential that triggered the event.
  1536  	ID             string                          `json:"id" api:"required"`
  1537  	OrganizationID string                          `json:"organization_id" api:"required"`
  1538  	Type           constant.VaultCredentialCreated `json:"type" default:"vault_credential.created"`
  1539  	// ID of the vault that owns this credential.
  1540  	VaultID     string `json:"vault_id" api:"required"`
  1541  	WorkspaceID string `json:"workspace_id" api:"required"`
  1542  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1543  	JSON struct {
  1544  		ID             respjson.Field
  1545  		OrganizationID respjson.Field
  1546  		Type           respjson.Field
  1547  		VaultID        respjson.Field
  1548  		WorkspaceID    respjson.Field
  1549  		ExtraFields    map[string]respjson.Field
  1550  		raw            string
  1551  	} `json:"-"`
  1552  }
  1553  
  1554  // Returns the unmodified JSON received from the API
  1555  func (r BetaWebhookVaultCredentialCreatedEventData) RawJSON() string { return r.JSON.raw }
  1556  func (r *BetaWebhookVaultCredentialCreatedEventData) UnmarshalJSON(data []byte) error {
  1557  	return apijson.UnmarshalRoot(data, r)
  1558  }
  1559  
  1560  type BetaWebhookVaultCredentialDeletedEventData struct {
  1561  	// ID of the vault credential that triggered the event.
  1562  	ID             string                          `json:"id" api:"required"`
  1563  	OrganizationID string                          `json:"organization_id" api:"required"`
  1564  	Type           constant.VaultCredentialDeleted `json:"type" default:"vault_credential.deleted"`
  1565  	// ID of the vault that owns this credential.
  1566  	VaultID     string `json:"vault_id" api:"required"`
  1567  	WorkspaceID string `json:"workspace_id" api:"required"`
  1568  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1569  	JSON struct {
  1570  		ID             respjson.Field
  1571  		OrganizationID respjson.Field
  1572  		Type           respjson.Field
  1573  		VaultID        respjson.Field
  1574  		WorkspaceID    respjson.Field
  1575  		ExtraFields    map[string]respjson.Field
  1576  		raw            string
  1577  	} `json:"-"`
  1578  }
  1579  
  1580  // Returns the unmodified JSON received from the API
  1581  func (r BetaWebhookVaultCredentialDeletedEventData) RawJSON() string { return r.JSON.raw }
  1582  func (r *BetaWebhookVaultCredentialDeletedEventData) UnmarshalJSON(data []byte) error {
  1583  	return apijson.UnmarshalRoot(data, r)
  1584  }
  1585  
  1586  type BetaWebhookVaultCredentialRefreshFailedEventData struct {
  1587  	// ID of the vault credential that triggered the event.
  1588  	ID             string                                `json:"id" api:"required"`
  1589  	OrganizationID string                                `json:"organization_id" api:"required"`
  1590  	Type           constant.VaultCredentialRefreshFailed `json:"type" default:"vault_credential.refresh_failed"`
  1591  	// ID of the vault that owns this credential.
  1592  	VaultID     string `json:"vault_id" api:"required"`
  1593  	WorkspaceID string `json:"workspace_id" api:"required"`
  1594  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1595  	JSON struct {
  1596  		ID             respjson.Field
  1597  		OrganizationID respjson.Field
  1598  		Type           respjson.Field
  1599  		VaultID        respjson.Field
  1600  		WorkspaceID    respjson.Field
  1601  		ExtraFields    map[string]respjson.Field
  1602  		raw            string
  1603  	} `json:"-"`
  1604  }
  1605  
  1606  // Returns the unmodified JSON received from the API
  1607  func (r BetaWebhookVaultCredentialRefreshFailedEventData) RawJSON() string { return r.JSON.raw }
  1608  func (r *BetaWebhookVaultCredentialRefreshFailedEventData) UnmarshalJSON(data []byte) error {
  1609  	return apijson.UnmarshalRoot(data, r)
  1610  }
  1611  
  1612  type BetaWebhookVaultDeletedEventData struct {
  1613  	// ID of the vault that triggered the event.
  1614  	ID             string                `json:"id" api:"required"`
  1615  	OrganizationID string                `json:"organization_id" api:"required"`
  1616  	Type           constant.VaultDeleted `json:"type" default:"vault.deleted"`
  1617  	WorkspaceID    string                `json:"workspace_id" api:"required"`
  1618  	// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
  1619  	JSON struct {
  1620  		ID             respjson.Field
  1621  		OrganizationID respjson.Field
  1622  		Type           respjson.Field
  1623  		WorkspaceID    respjson.Field
  1624  		ExtraFields    map[string]respjson.Field
  1625  		raw            string
  1626  	} `json:"-"`
  1627  }
  1628  
  1629  // Returns the unmodified JSON received from the API
  1630  func (r BetaWebhookVaultDeletedEventData) RawJSON() string { return r.JSON.raw }
  1631  func (r *BetaWebhookVaultDeletedEventData) UnmarshalJSON(data []byte) error {
  1632  	return apijson.UnmarshalRoot(data, r)
  1633  }