Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .last-synced-sha
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
92db0495807c86fbbc4d45bd266a6c1f5bcbb59c
711 changes: 707 additions & 4 deletions .oagen-manifest.json

Large diffs are not rendered by default.

129 changes: 129 additions & 0 deletions src/WorkOS.net/Client/Utilities/EventSchemaDiscriminatorConverter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
// This file is auto-generated by oagen. Do not edit.

namespace WorkOS
{
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

/// <summary>
/// JSON converter that deserializes <see cref="EventSchema"/> into the
/// correct variant subclass based on the "event" property.
/// </summary>
public class EventSchemaDiscriminatorConverter : Newtonsoft.Json.JsonConverter
{
public override bool CanConvert(Type objectType) => typeof(EventSchema).IsAssignableFrom(objectType);

public override object ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, object? existingValue, Newtonsoft.Json.JsonSerializer serializer)
{
var jObject = JObject.Load(reader);
var discriminatorValue = jObject["event"]?.ToString();

object target;
switch (discriminatorValue)
{
case "action.authentication.denied": target = new ActionAuthenticationDenied(); break;
case "action.user_registration.denied": target = new ActionUserRegistrationDenied(); break;
case "api_key.created": target = new ApiKeyCreated(); break;
case "api_key.revoked": target = new ApiKeyRevoked(); break;
case "authentication.email_verification_failed": target = new AuthenticationEmailVerificationFailed(); break;
case "authentication.email_verification_succeeded": target = new AuthenticationEmailVerificationSucceeded(); break;
case "authentication.magic_auth_failed": target = new AuthenticationMagicAuthFailed(); break;
case "authentication.magic_auth_succeeded": target = new AuthenticationMagicAuthSucceeded(); break;
case "authentication.mfa_failed": target = new AuthenticationMfaFailed(); break;
case "authentication.mfa_succeeded": target = new AuthenticationMfaSucceeded(); break;
case "authentication.oauth_failed": target = new AuthenticationOAuthFailed(); break;
case "authentication.oauth_succeeded": target = new AuthenticationOAuthSucceeded(); break;
case "authentication.passkey_failed": target = new AuthenticationPasskeyFailed(); break;
case "authentication.passkey_succeeded": target = new AuthenticationPasskeySucceeded(); break;
case "authentication.password_failed": target = new AuthenticationPasswordFailed(); break;
case "authentication.password_succeeded": target = new AuthenticationPasswordSucceeded(); break;
case "authentication.radar_risk_detected": target = new AuthenticationRadarRiskDetected(); break;
case "authentication.sso_failed": target = new AuthenticationSSOFailed(); break;
case "authentication.sso_started": target = new AuthenticationSSOStarted(); break;
case "authentication.sso_succeeded": target = new AuthenticationSSOSucceeded(); break;
case "authentication.sso_timed_out": target = new AuthenticationSSOTimedOut(); break;
case "connection.activated": target = new ConnectionActivated(); break;
case "connection.deactivated": target = new ConnectionDeactivated(); break;
case "connection.deleted": target = new ConnectionDeleted(); break;
case "connection.saml_certificate_renewal_required": target = new ConnectionSAMLCertificateRenewalRequired(); break;
case "connection.saml_certificate_renewed": target = new ConnectionSAMLCertificateRenewed(); break;
case "dsync.activated": target = new DsyncActivated(); break;
case "dsync.deactivated": target = new DsyncDeactivated(); break;
case "dsync.deleted": target = new DsyncDeleted(); break;
case "dsync.group.created": target = new DsyncGroupCreated(); break;
case "dsync.group.deleted": target = new DsyncGroupDeleted(); break;
case "dsync.group.updated": target = new DsyncGroupUpdated(); break;
case "dsync.group.user_added": target = new DsyncGroupUserAdded(); break;
case "dsync.user.created": target = new DsyncUserCreated(); break;
case "dsync.user.deleted": target = new DsyncUserDeleted(); break;
case "dsync.group.user_removed": target = new DsyncGroupUserRemoved(); break;
case "dsync.user.updated": target = new DsyncUserUpdated(); break;
case "email_verification.created": target = new EmailVerificationCreated(); break;
case "flag.created": target = new FlagCreated(); break;
case "flag.deleted": target = new FlagDeleted(); break;
case "flag.rule_updated": target = new FlagRuleUpdated(); break;
case "flag.updated": target = new FlagUpdated(); break;
case "group.created": target = new GroupCreated(); break;
case "group.deleted": target = new GroupDeleted(); break;
case "group.member_added": target = new GroupMemberAdded(); break;
case "group.member_removed": target = new GroupMemberRemoved(); break;
case "group.updated": target = new GroupUpdated(); break;
case "invitation.accepted": target = new InvitationAccepted(); break;
case "invitation.created": target = new InvitationCreated(); break;
case "invitation.resent": target = new InvitationResent(); break;
case "invitation.revoked": target = new InvitationRevoked(); break;
case "magic_auth.created": target = new MagicAuthCreated(); break;
case "organization.created": target = new OrganizationCreated(); break;
case "organization.deleted": target = new OrganizationDeleted(); break;
case "organization_domain.created": target = new OrganizationDomainCreated(); break;
case "organization_domain.deleted": target = new OrganizationDomainDeleted(); break;
case "organization_domain.updated": target = new OrganizationDomainUpdated(); break;
case "organization_domain.verification_failed": target = new OrganizationDomainVerificationFailed(); break;
case "organization_domain.verified": target = new OrganizationDomainVerified(); break;
case "organization_membership.created": target = new OrganizationMembershipCreated(); break;
case "organization_membership.deleted": target = new OrganizationMembershipDeleted(); break;
case "organization_membership.updated": target = new OrganizationMembershipUpdated(); break;
case "organization_role.created": target = new OrganizationRoleCreated(); break;
case "organization_role.deleted": target = new OrganizationRoleDeleted(); break;
case "organization_role.updated": target = new OrganizationRoleUpdated(); break;
case "organization.updated": target = new OrganizationUpdated(); break;
case "password_reset.created": target = new PasswordResetCreated(); break;
case "password_reset.succeeded": target = new PasswordResetSucceeded(); break;
case "permission.created": target = new PermissionCreated(); break;
case "permission.deleted": target = new PermissionDeleted(); break;
case "permission.updated": target = new PermissionUpdated(); break;
case "role.created": target = new RoleCreated(); break;
case "role.deleted": target = new RoleDeleted(); break;
case "role.updated": target = new RoleUpdated(); break;
case "session.created": target = new SessionCreated(); break;
case "session.revoked": target = new SessionRevoked(); break;
case "user.created": target = new UserCreated(); break;
case "user.deleted": target = new UserDeleted(); break;
case "user.updated": target = new UserUpdated(); break;
case "vault.byok_key.verification_completed": target = new VaultByokKeyVerificationCompleted(); break;
case "vault.data.created": target = new VaultDataCreated(); break;
case "vault.data.deleted": target = new VaultDataDeleted(); break;
case "vault.data.read": target = new VaultDataRead(); break;
case "vault.data.updated": target = new VaultDataUpdated(); break;
case "vault.dek.decrypted": target = new VaultDekDecrypted(); break;
case "vault.dek.read": target = new VaultDekRead(); break;
case "vault.kek.created": target = new VaultKekCreated(); break;
case "vault.metadata.read": target = new VaultMetadataRead(); break;
case "vault.names.listed": target = new VaultNamesListed(); break;
case "waitlist_user.approved": target = new WaitlistUserApproved(); break;
case "waitlist_user.created": target = new WaitlistUserCreated(); break;
case "waitlist_user.denied": target = new WaitlistUserDenied(); break;
default: target = new EventSchema(); break;
}

serializer.Populate(jObject.CreateReader(), target);
return target;
}

public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object? value, Newtonsoft.Json.JsonSerializer serializer)
{
serializer.Serialize(writer, value);
}
}
}
10 changes: 10 additions & 0 deletions src/WorkOS.net/Client/WorkOSClient.Generated.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@ public partial class WorkOSClient
/// <summary>Gets the <see cref="OrganizationsService"/> for organizations API operations.</summary>
public virtual OrganizationsService Organizations => this.organizations ??= new OrganizationsService(this);

private GroupsService groups;

/// <summary>Gets the <see cref="GroupsService"/> for groups API operations.</summary>
public virtual GroupsService Groups => this.groups ??= new GroupsService(this);

private AdminPortalService adminPortal;

/// <summary>Gets the <see cref="AdminPortalService"/> for admin portal API operations.</summary>
Expand All @@ -77,6 +82,11 @@ public partial class WorkOSClient
/// <summary>Gets the <see cref="UserManagementService"/> for user management API operations.</summary>
public virtual UserManagementService UserManagement => this.userManagement ??= new UserManagementService(this);

private UserManagementOrganizationMembershipGroupsService userManagementOrganizationMembershipGroups;

/// <summary>Gets the <see cref="UserManagementOrganizationMembershipGroupsService"/> for user management organization membership groups API operations.</summary>
public virtual UserManagementOrganizationMembershipGroupsService UserManagementOrganizationMembershipGroups => this.userManagementOrganizationMembershipGroups ??= new UserManagementOrganizationMembershipGroupsService(this);

private WebhooksService webhooks;

/// <summary>Gets the <see cref="WebhooksService"/> for webhooks API operations.</summary>
Expand Down
16 changes: 3 additions & 13 deletions src/WorkOS.net/Entities/ActionAuthenticationDenied.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an action authentication denied.</summary>
public class ActionAuthenticationDenied
public class ActionAuthenticationDenied : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "action.authentication.denied";

/// <summary>The event payload.</summary>
public ActionAuthenticationDeniedData Data { get; set; } = default!;
public EventContext? Context { get; set; }

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new ActionAuthenticationDeniedData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
16 changes: 3 additions & 13 deletions src/WorkOS.net/Entities/ActionUserRegistrationDenied.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an action user registration denied.</summary>
public class ActionUserRegistrationDenied
public class ActionUserRegistrationDenied : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "action.user_registration.denied";

/// <summary>The event payload.</summary>
public ActionUserRegistrationDeniedData Data { get; set; } = default!;
public EventContext? Context { get; set; }

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new ActionUserRegistrationDeniedData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
16 changes: 3 additions & 13 deletions src/WorkOS.net/Entities/ApiKeyCreated.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an api key created.</summary>
public class ApiKeyCreated
public class ApiKeyCreated : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "api_key.created";

/// <summary>The event payload.</summary>
public ApiKeyCreatedData Data { get; set; } = default!;

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }
public EventContext? Context { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new ApiKeyCreatedData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
16 changes: 3 additions & 13 deletions src/WorkOS.net/Entities/ApiKeyRevoked.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an api key revoked.</summary>
public class ApiKeyRevoked
public class ApiKeyRevoked : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "api_key.revoked";

/// <summary>The event payload.</summary>
public ApiKeyCreatedData Data { get; set; } = default!;

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }
public EventContext? Context { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new ApiKeyCreatedData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an authentication email verification failed.</summary>
public class AuthenticationEmailVerificationFailed
public class AuthenticationEmailVerificationFailed : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "authentication.email_verification_failed";

/// <summary>The event payload.</summary>
public AuthenticationEmailVerificationFailedData Data { get; set; } = default!;

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }
public EventContext? Context { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new AuthenticationEmailVerificationFailedData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an authentication email verification succeeded.</summary>
public class AuthenticationEmailVerificationSucceeded
public class AuthenticationEmailVerificationSucceeded : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "authentication.email_verification_succeeded";

/// <summary>The event payload.</summary>
public AuthenticationEmailVerificationSucceededData Data { get; set; } = default!;

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }
public EventContext? Context { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new AuthenticationEmailVerificationSucceededData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
16 changes: 3 additions & 13 deletions src/WorkOS.net/Entities/AuthenticationMagicAuthFailed.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an authentication magic auth failed.</summary>
public class AuthenticationMagicAuthFailed
public class AuthenticationMagicAuthFailed : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "authentication.magic_auth_failed";

/// <summary>The event payload.</summary>
public AuthenticationMagicAuthFailedData Data { get; set; } = default!;

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }
public EventContext? Context { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new AuthenticationMagicAuthFailedData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
16 changes: 3 additions & 13 deletions src/WorkOS.net/Entities/AuthenticationMagicAuthSucceeded.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ namespace WorkOS
using System;

/// <summary>Represents an authentication magic auth succeeded.</summary>
public class AuthenticationMagicAuthSucceeded
public class AuthenticationMagicAuthSucceeded : EventSchema
{

/// <summary>Unique identifier for the event.</summary>
public string Id { get; set; } = default!;
public string Event { get; internal set; } = "authentication.magic_auth_succeeded";

/// <summary>The event payload.</summary>
public AuthenticationMagicAuthSucceededData Data { get; set; } = default!;

/// <summary>An ISO 8601 timestamp.</summary>
public DateTimeOffset CreatedAt { get; set; }
public EventContext? Context { get; set; }

/// <summary>Distinguishes the Event object.</summary>
public string Object { get; internal set; } = "event";
public new AuthenticationMagicAuthSucceededData Data { get; set; } = default!;
public new EventContext? Context { get; set; }
}
}
Loading