diff --git a/.last-synced-sha b/.last-synced-sha index f72eb0e2..be98ab48 100644 --- a/.last-synced-sha +++ b/.last-synced-sha @@ -1 +1 @@ -92db0495807c86fbbc4d45bd266a6c1f5bcbb59c +f908f520f9fcd63dfd42ed35b7f141a65b61609b diff --git a/.oagen-manifest.json b/.oagen-manifest.json index 3dd2b3da..dfb94fa1 100644 --- a/.oagen-manifest.json +++ b/.oagen-manifest.json @@ -1,7 +1,7 @@ { "version": 2, "language": "ruby", - "generatedAt": "2026-04-30T17:41:02.756Z", + "generatedAt": "2026-04-30T20:02:45.528Z", "files": [ "lib/workos.rb", "lib/workos/admin_portal.rb", @@ -20,6 +20,8 @@ "lib/workos/api_keys/api_key_revoked_data.rb", "lib/workos/api_keys/api_key_revoked_data_owner.rb", "lib/workos/api_keys/api_key_validation_response.rb", + "lib/workos/api_keys/api_key_validation_response_api_key.rb", + "lib/workos/api_keys/api_key_validation_response_api_key_owner.rb", "lib/workos/api_keys/api_key_with_value.rb", "lib/workos/api_keys/api_key_with_value_owner.rb", "lib/workos/api_keys/create_organization_api_key.rb", @@ -75,7 +77,7 @@ "lib/workos/authorization/update_authorization_resource.rb", "lib/workos/authorization/update_organization_role.rb", "lib/workos/authorization/update_role.rb", - "lib/workos/authorization/user_organization_membership_base_list_data.rb", + "lib/workos/authorization/user_organization_membership_base_with_user.rb", "lib/workos/client.rb", "lib/workos/connect.rb", "lib/workos/connect/application_credentials_list_item.rb", @@ -116,6 +118,10 @@ "lib/workos/directory_sync/dsync_group_user_added_data.rb", "lib/workos/directory_sync/dsync_group_user_removed.rb", "lib/workos/directory_sync/dsync_group_user_removed_data.rb", + "lib/workos/directory_sync/dsync_token_created.rb", + "lib/workos/directory_sync/dsync_token_created_data.rb", + "lib/workos/directory_sync/dsync_token_deleted.rb", + "lib/workos/directory_sync/dsync_token_deleted_data.rb", "lib/workos/directory_sync/dsync_user_created.rb", "lib/workos/directory_sync/dsync_user_deleted.rb", "lib/workos/directory_sync/dsync_user_updated.rb", @@ -165,6 +171,7 @@ "lib/workos/groups/create_group_membership.rb", "lib/workos/groups/group.rb", "lib/workos/groups/update_group.rb", + "lib/workos/groups/user_organization_membership_base_list_data.rb", "lib/workos/inflections.rb", "lib/workos/multi_factor_auth.rb", "lib/workos/multi_factor_auth/authentication_challenge.rb", @@ -409,6 +416,7 @@ "lib/workos/types/user_management_users_feature_flags_order.rb", "lib/workos/types/user_management_users_order.rb", "lib/workos/types/user_organization_membership_base_list_data_status.rb", + "lib/workos/types/user_organization_membership_base_with_user_status.rb", "lib/workos/types/user_organization_membership_status.rb", "lib/workos/types/user_sessions_auth_method.rb", "lib/workos/types/user_sessions_status.rb", @@ -597,6 +605,8 @@ "rbi/workos/api_key_revoked_data.rbi", "rbi/workos/api_key_revoked_data_owner.rbi", "rbi/workos/api_key_validation_response.rbi", + "rbi/workos/api_key_validation_response_api_key.rbi", + "rbi/workos/api_key_validation_response_api_key_owner.rbi", "rbi/workos/api_key_with_value.rbi", "rbi/workos/api_key_with_value_owner.rbi", "rbi/workos/api_keys.rbi", @@ -769,6 +779,10 @@ "rbi/workos/dsync_group_user_added_data.rbi", "rbi/workos/dsync_group_user_removed.rbi", "rbi/workos/dsync_group_user_removed_data.rbi", + "rbi/workos/dsync_token_created.rbi", + "rbi/workos/dsync_token_created_data.rbi", + "rbi/workos/dsync_token_deleted.rbi", + "rbi/workos/dsync_token_deleted_data.rbi", "rbi/workos/dsync_user_created.rbi", "rbi/workos/dsync_user_deleted.rbi", "rbi/workos/dsync_user_updated.rbi", @@ -981,6 +995,7 @@ "rbi/workos/user_object.rbi", "rbi/workos/user_organization_membership.rbi", "rbi/workos/user_organization_membership_base_list_data.rbi", + "rbi/workos/user_organization_membership_base_with_user.rbi", "rbi/workos/user_sessions_impersonator.rbi", "rbi/workos/user_sessions_list_item.rbi", "rbi/workos/user_updated.rbi", diff --git a/lib/workos/api_keys/api_key_created_data.rb b/lib/workos/api_keys/api_key_created_data.rb index 024af96c..0c8d34af 100644 --- a/lib/workos/api_keys/api_key_created_data.rb +++ b/lib/workos/api_keys/api_key_created_data.rb @@ -31,7 +31,7 @@ def initialize(json) hash = self.class.normalize(json) @object = hash[:object] @id = hash[:id] - @owner = hash[:owner] ? WorkOS::ApiKeyCreatedDataOwner.new(hash[:owner]) : nil + @owner = hash[:owner] @name = hash[:name] @obfuscated_value = hash[:obfuscated_value] @last_used_at = hash[:last_used_at] diff --git a/lib/workos/api_keys/api_key_validation_response.rb b/lib/workos/api_keys/api_key_validation_response.rb index 7415d5c0..dc1c3f4e 100644 --- a/lib/workos/api_keys/api_key_validation_response.rb +++ b/lib/workos/api_keys/api_key_validation_response.rb @@ -12,7 +12,7 @@ class ApiKeyValidationResponse < WorkOS::Types::BaseModel def initialize(json) hash = self.class.normalize(json) - @api_key = hash[:api_key] ? WorkOS::ApiKey.new(hash[:api_key]) : nil + @api_key = hash[:api_key] ? WorkOS::ApiKeyValidationResponseApiKey.new(hash[:api_key]) : nil end end end diff --git a/lib/workos/api_keys/api_key_validation_response_api_key.rb b/lib/workos/api_keys/api_key_validation_response_api_key.rb new file mode 100644 index 00000000..34effbc0 --- /dev/null +++ b/lib/workos/api_keys/api_key_validation_response_api_key.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + ApiKeyValidationResponseApiKey = ApiKey +end diff --git a/lib/workos/api_keys/api_key_validation_response_api_key_owner.rb b/lib/workos/api_keys/api_key_validation_response_api_key_owner.rb new file mode 100644 index 00000000..a85a1d8e --- /dev/null +++ b/lib/workos/api_keys/api_key_validation_response_api_key_owner.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + ApiKeyValidationResponseApiKeyOwner = ApiKeyCreatedDataOwner +end diff --git a/lib/workos/authorization.rb b/lib/workos/authorization.rb index fcdc09aa..4434c81f 100644 --- a/lib/workos/authorization.rb +++ b/lib/workos/authorization.rb @@ -698,7 +698,7 @@ def delete_resource_by_external_id( # @param permission_slug [String] The permission slug to filter by. Only users with this permission on the resource are returned. # @param assignment [WorkOS::Types::AuthorizationAssignment, nil] Filter by assignment type. Use "direct" for direct assignments only, or "indirect" to include inherited assignments. # @param request_options [Hash] (see WorkOS::Types::RequestOptions) - # @return [WorkOS::Types::ListStruct] + # @return [WorkOS::Types::ListStruct] def list_memberships_for_resource_by_external_id( organization_id:, resource_type_slug:, @@ -742,7 +742,7 @@ def list_memberships_for_resource_by_external_id( } WorkOS::Types::ListStruct.from_response( response, - model: WorkOS::UserOrganizationMembershipBaseListData, + model: WorkOS::UserOrganizationMembershipBaseWithUser, filters: {organization_id: organization_id, resource_type_slug: resource_type_slug, external_id: external_id, before: before, limit: limit, order: order, permission_slug: permission_slug, assignment: assignment}, fetch_next: fetch_next ) @@ -962,7 +962,7 @@ def delete_resource( # @param permission_slug [String] The permission slug to filter by. Only users with this permission on the resource are returned. # @param assignment [WorkOS::Types::AuthorizationAssignment, nil] Filter by assignment type. Use `direct` for direct assignments only, or `indirect` to include inherited assignments. # @param request_options [Hash] (see WorkOS::Types::RequestOptions) - # @return [WorkOS::Types::ListStruct] + # @return [WorkOS::Types::ListStruct] def list_memberships_for_resource( resource_id:, permission_slug:, @@ -1002,7 +1002,7 @@ def list_memberships_for_resource( } WorkOS::Types::ListStruct.from_response( response, - model: WorkOS::UserOrganizationMembershipBaseListData, + model: WorkOS::UserOrganizationMembershipBaseWithUser, filters: {resource_id: resource_id, before: before, limit: limit, order: order, permission_slug: permission_slug, assignment: assignment}, fetch_next: fetch_next ) diff --git a/lib/workos/authorization/user_organization_membership_base_with_user.rb b/lib/workos/authorization/user_organization_membership_base_with_user.rb new file mode 100644 index 00000000..0c6b007d --- /dev/null +++ b/lib/workos/authorization/user_organization_membership_base_with_user.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + class UserOrganizationMembershipBaseWithUser < WorkOS::Types::BaseModel + HASH_ATTRS = { + object: :object, + id: :id, + user_id: :user_id, + organization_id: :organization_id, + status: :status, + directory_managed: :directory_managed, + organization_name: :organization_name, + custom_attributes: :custom_attributes, + created_at: :created_at, + updated_at: :updated_at, + user: :user + }.freeze + + attr_accessor \ + :object, + :id, + :user_id, + :organization_id, + :status, + :directory_managed, + :organization_name, + :custom_attributes, + :created_at, + :updated_at, + :user + + def initialize(json) + hash = self.class.normalize(json) + @object = hash[:object] + @id = hash[:id] + @user_id = hash[:user_id] + @organization_id = hash[:organization_id] + @status = hash[:status] + @directory_managed = hash[:directory_managed] + @organization_name = hash[:organization_name] + @custom_attributes = hash[:custom_attributes] || {} + @created_at = hash[:created_at] + @updated_at = hash[:updated_at] + @user = hash[:user] ? WorkOS::User.new(hash[:user]) : nil + end + end +end diff --git a/lib/workos/directory_sync/directory_user.rb b/lib/workos/directory_sync/directory_user.rb index b3b06b43..e5c7d28e 100644 --- a/lib/workos/directory_sync/directory_user.rb +++ b/lib/workos/directory_sync/directory_user.rb @@ -13,6 +13,7 @@ class DirectoryUser < WorkOS::Types::BaseModel email: :email, first_name: :first_name, last_name: :last_name, + name: :name, emails: :emails, job_title: :job_title, username: :username, @@ -43,6 +44,7 @@ class DirectoryUser < WorkOS::Types::BaseModel :email, :first_name, :last_name, + :name, :state, :custom_attributes, :role, @@ -88,6 +90,7 @@ def initialize(json) @email = hash[:email] @first_name = hash[:first_name] @last_name = hash[:last_name] + @name = hash[:name] @emails = (hash[:emails] || []).map { |item| item ? WorkOS::DirectoryUserEmail.new(item) : nil } @job_title = hash[:job_title] @username = hash[:username] diff --git a/lib/workos/directory_sync/directory_user_with_groups.rb b/lib/workos/directory_sync/directory_user_with_groups.rb index b75d84fc..7bcbf7c0 100644 --- a/lib/workos/directory_sync/directory_user_with_groups.rb +++ b/lib/workos/directory_sync/directory_user_with_groups.rb @@ -13,6 +13,7 @@ class DirectoryUserWithGroups < WorkOS::Types::BaseModel email: :email, first_name: :first_name, last_name: :last_name, + name: :name, emails: :emails, job_title: :job_title, username: :username, @@ -35,7 +36,7 @@ class DirectoryUserWithGroups < WorkOS::Types::BaseModel # @!attribute raw_attributes # @deprecated The raw attributes received from the directory provider. # @!attribute groups - # @deprecated The directory groups the user belongs to. Use the List Directory Groups endpoint with a user filter instead. + # @deprecated The directory groups the user belongs to. Deprecated: starting May 1, 2026, this field returns an empty array by default for newly created teams. Existing teams currently depending on this field should migrate to the new access pattern for better throughput performance — the field is unbounded by user, so users with many group memberships produce large, slow response payloads. Use the List Directory Groups endpoint with a `user` filter to fetch a user's group memberships. attr_accessor \ :object, @@ -46,6 +47,7 @@ class DirectoryUserWithGroups < WorkOS::Types::BaseModel :email, :first_name, :last_name, + :name, :state, :custom_attributes, :role, @@ -98,6 +100,7 @@ def initialize(json) @email = hash[:email] @first_name = hash[:first_name] @last_name = hash[:last_name] + @name = hash[:name] @emails = (hash[:emails] || []).map { |item| item ? WorkOS::DirectoryUserWithGroupsEmail.new(item) : nil } @job_title = hash[:job_title] @username = hash[:username] diff --git a/lib/workos/directory_sync/dsync_token_created.rb b/lib/workos/directory_sync/dsync_token_created.rb new file mode 100644 index 00000000..4e14a414 --- /dev/null +++ b/lib/workos/directory_sync/dsync_token_created.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + class DsyncTokenCreated < WorkOS::Types::BaseModel + HASH_ATTRS = { + id: :id, + event: :event, + data: :data, + created_at: :created_at, + context: :context, + object: :object + }.freeze + + attr_accessor \ + :id, + :event, + :data, + :created_at, + :context, + :object + + def initialize(json) + hash = self.class.normalize(json) + @id = hash[:id] + @event = hash[:event] + @data = hash[:data] ? WorkOS::DsyncTokenCreatedData.new(hash[:data]) : nil + @created_at = hash[:created_at] + @context = hash[:context] ? WorkOS::EventContext.new(hash[:context]) : nil + @object = hash[:object] + end + end +end diff --git a/lib/workos/directory_sync/dsync_token_created_data.rb b/lib/workos/directory_sync/dsync_token_created_data.rb new file mode 100644 index 00000000..29375b53 --- /dev/null +++ b/lib/workos/directory_sync/dsync_token_created_data.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + class DsyncTokenCreatedData < WorkOS::Types::BaseModel + HASH_ATTRS = { + object: :object, + id: :id, + directory_id: :directory_id, + organization_id: :organization_id, + token_suffix: :token_suffix, + created_at: :created_at, + expires_at: :expires_at + }.freeze + + attr_accessor \ + :object, + :id, + :directory_id, + :organization_id, + :token_suffix, + :created_at, + :expires_at + + def initialize(json) + hash = self.class.normalize(json) + @object = hash[:object] + @id = hash[:id] + @directory_id = hash[:directory_id] + @organization_id = hash[:organization_id] + @token_suffix = hash[:token_suffix] + @created_at = hash[:created_at] + @expires_at = hash[:expires_at] + end + end +end diff --git a/lib/workos/directory_sync/dsync_token_deleted.rb b/lib/workos/directory_sync/dsync_token_deleted.rb new file mode 100644 index 00000000..37d78442 --- /dev/null +++ b/lib/workos/directory_sync/dsync_token_deleted.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + class DsyncTokenDeleted < WorkOS::Types::BaseModel + HASH_ATTRS = { + id: :id, + event: :event, + data: :data, + created_at: :created_at, + context: :context, + object: :object + }.freeze + + attr_accessor \ + :id, + :event, + :data, + :created_at, + :context, + :object + + def initialize(json) + hash = self.class.normalize(json) + @id = hash[:id] + @event = hash[:event] + @data = hash[:data] ? WorkOS::DsyncTokenDeletedData.new(hash[:data]) : nil + @created_at = hash[:created_at] + @context = hash[:context] ? WorkOS::EventContext.new(hash[:context]) : nil + @object = hash[:object] + end + end +end diff --git a/lib/workos/directory_sync/dsync_token_deleted_data.rb b/lib/workos/directory_sync/dsync_token_deleted_data.rb new file mode 100644 index 00000000..4768a6b1 --- /dev/null +++ b/lib/workos/directory_sync/dsync_token_deleted_data.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + DsyncTokenDeletedData = DsyncTokenCreatedData +end diff --git a/lib/workos/directory_sync/dsync_user_updated_data.rb b/lib/workos/directory_sync/dsync_user_updated_data.rb index 8298a54c..55791806 100644 --- a/lib/workos/directory_sync/dsync_user_updated_data.rb +++ b/lib/workos/directory_sync/dsync_user_updated_data.rb @@ -13,6 +13,7 @@ class DsyncUserUpdatedData < WorkOS::Types::BaseModel email: :email, first_name: :first_name, last_name: :last_name, + name: :name, emails: :emails, job_title: :job_title, username: :username, @@ -44,6 +45,7 @@ class DsyncUserUpdatedData < WorkOS::Types::BaseModel :email, :first_name, :last_name, + :name, :state, :custom_attributes, :role, @@ -90,6 +92,7 @@ def initialize(json) @email = hash[:email] @first_name = hash[:first_name] @last_name = hash[:last_name] + @name = hash[:name] @emails = (hash[:emails] || []).map { |item| item ? WorkOS::DsyncUserUpdatedDataEmail.new(item) : nil } @job_title = hash[:job_title] @username = hash[:username] diff --git a/lib/workos/authorization/user_organization_membership_base_list_data.rb b/lib/workos/groups/user_organization_membership_base_list_data.rb similarity index 100% rename from lib/workos/authorization/user_organization_membership_base_list_data.rb rename to lib/workos/groups/user_organization_membership_base_list_data.rb diff --git a/lib/workos/sso/profile.rb b/lib/workos/sso/profile.rb index 39b3520c..ba35eeb5 100644 --- a/lib/workos/sso/profile.rb +++ b/lib/workos/sso/profile.rb @@ -14,6 +14,7 @@ class Profile < WorkOS::Types::BaseModel email: :email, first_name: :first_name, last_name: :last_name, + name: :name, role: :role, roles: :roles, groups: :groups, @@ -31,6 +32,7 @@ class Profile < WorkOS::Types::BaseModel :email, :first_name, :last_name, + :name, :role, :roles, :groups, @@ -48,6 +50,7 @@ def initialize(json) @email = hash[:email] @first_name = hash[:first_name] @last_name = hash[:last_name] + @name = hash[:name] @role = hash[:role] ? WorkOS::SlimRole.new(hash[:role]) : nil @roles = (hash[:roles] || []).map { |item| item ? WorkOS::SlimRole.new(item) : nil } @groups = hash[:groups] || [] diff --git a/lib/workos/types/event_context_actor_source.rb b/lib/workos/types/event_context_actor_source.rb index 8ba757fa..d49ea597 100644 --- a/lib/workos/types/event_context_actor_source.rb +++ b/lib/workos/types/event_context_actor_source.rb @@ -7,8 +7,9 @@ module Types class EventContextActorSource API = "api" DASHBOARD = "dashboard" + ADMIN_PORTAL = "admin_portal" SYSTEM = "system" - ALL = [API, DASHBOARD, SYSTEM].freeze + ALL = [API, DASHBOARD, ADMIN_PORTAL, SYSTEM].freeze end end end diff --git a/lib/workos/types/user_organization_membership_base_with_user_status.rb b/lib/workos/types/user_organization_membership_base_with_user_status.rb new file mode 100644 index 00000000..25693f39 --- /dev/null +++ b/lib/workos/types/user_organization_membership_base_with_user_status.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +module WorkOS + module Types + UserOrganizationMembershipBaseWithUserStatus = OrganizationMembershipCreatedDataStatus + end +end diff --git a/lib/workos/user_management/organization_membership.rb b/lib/workos/user_management/organization_membership.rb index e2d9cf95..e73f24f3 100644 --- a/lib/workos/user_management/organization_membership.rb +++ b/lib/workos/user_management/organization_membership.rb @@ -15,7 +15,8 @@ class OrganizationMembership < WorkOS::Types::BaseModel custom_attributes: :custom_attributes, created_at: :created_at, updated_at: :updated_at, - role: :role + role: :role, + user: :user }.freeze attr_accessor \ @@ -29,7 +30,8 @@ class OrganizationMembership < WorkOS::Types::BaseModel :custom_attributes, :created_at, :updated_at, - :role + :role, + :user def initialize(json) hash = self.class.normalize(json) @@ -44,6 +46,7 @@ def initialize(json) @created_at = hash[:created_at] @updated_at = hash[:updated_at] @role = hash[:role] ? WorkOS::SlimRole.new(hash[:role]) : nil + @user = hash[:user] ? WorkOS::User.new(hash[:user]) : nil end end end diff --git a/lib/workos/user_management/user_organization_membership.rb b/lib/workos/user_management/user_organization_membership.rb index ff127f31..22a8b2fb 100644 --- a/lib/workos/user_management/user_organization_membership.rb +++ b/lib/workos/user_management/user_organization_membership.rb @@ -15,7 +15,8 @@ class UserOrganizationMembership < WorkOS::Types::BaseModel custom_attributes: :custom_attributes, created_at: :created_at, updated_at: :updated_at, - role: :role + role: :role, + user: :user }.freeze attr_accessor \ @@ -29,7 +30,8 @@ class UserOrganizationMembership < WorkOS::Types::BaseModel :custom_attributes, :created_at, :updated_at, - :role + :role, + :user def initialize(json) hash = self.class.normalize(json) @@ -44,6 +46,7 @@ def initialize(json) @created_at = hash[:created_at] @updated_at = hash[:updated_at] @role = hash[:role] ? WorkOS::SlimRole.new(hash[:role]) : nil + @user = hash[:user] ? WorkOS::User.new(hash[:user]) : nil end end end diff --git a/rbi/workos/api_key_validation_response.rbi b/rbi/workos/api_key_validation_response.rbi index 1b691a1f..c94ac032 100644 --- a/rbi/workos/api_key_validation_response.rbi +++ b/rbi/workos/api_key_validation_response.rbi @@ -9,10 +9,10 @@ module WorkOS sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } def initialize(json); end - sig { returns(T.nilable(WorkOS::ApiKey)) } + sig { returns(T.nilable(WorkOS::ApiKeyValidationResponseApiKey)) } def api_key; end - sig { params(value: T.nilable(WorkOS::ApiKey)).returns(T.nilable(WorkOS::ApiKey)) } + sig { params(value: T.nilable(WorkOS::ApiKeyValidationResponseApiKey)).returns(T.nilable(WorkOS::ApiKeyValidationResponseApiKey)) } def api_key=(value); end sig { returns(T::Hash[Symbol, T.untyped]) } diff --git a/rbi/workos/api_key_validation_response_api_key.rbi b/rbi/workos/api_key_validation_response_api_key.rbi new file mode 100644 index 00000000..30b32390 --- /dev/null +++ b/rbi/workos/api_key_validation_response_api_key.rbi @@ -0,0 +1,72 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +# typed: strong + +module WorkOS + class ApiKeyValidationResponseApiKey + sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } + def initialize(json); end + + sig { returns(String) } + def object; end + + sig { params(value: String).returns(String) } + def object=(value); end + + sig { returns(String) } + def id; end + + sig { params(value: String).returns(String) } + def id=(value); end + + sig { returns(WorkOS::ApiKeyValidationResponseApiKeyOwner) } + def owner; end + + sig { params(value: WorkOS::ApiKeyValidationResponseApiKeyOwner).returns(WorkOS::ApiKeyValidationResponseApiKeyOwner) } + def owner=(value); end + + sig { returns(String) } + def name; end + + sig { params(value: String).returns(String) } + def name=(value); end + + sig { returns(String) } + def obfuscated_value; end + + sig { params(value: String).returns(String) } + def obfuscated_value=(value); end + + sig { returns(T.nilable(String)) } + def last_used_at; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def last_used_at=(value); end + + sig { returns(T::Array[String]) } + def permissions; end + + sig { params(value: T::Array[String]).returns(T::Array[String]) } + def permissions=(value); end + + sig { returns(String) } + def created_at; end + + sig { params(value: String).returns(String) } + def created_at=(value); end + + sig { returns(String) } + def updated_at; end + + sig { params(value: String).returns(String) } + def updated_at=(value); end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h; end + + sig { params(args: T.untyped).returns(String) } + def to_json(*args); end + end +end diff --git a/rbi/workos/api_key_validation_response_api_key_owner.rbi b/rbi/workos/api_key_validation_response_api_key_owner.rbi new file mode 100644 index 00000000..42041356 --- /dev/null +++ b/rbi/workos/api_key_validation_response_api_key_owner.rbi @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +# typed: strong + +module WorkOS + class ApiKeyValidationResponseApiKeyOwner + sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } + def initialize(json); end + + sig { returns(String) } + def type; end + + sig { params(value: String).returns(String) } + def type=(value); end + + sig { returns(String) } + def id; end + + sig { params(value: String).returns(String) } + def id=(value); end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h; end + + sig { params(args: T.untyped).returns(String) } + def to_json(*args); end + end +end diff --git a/rbi/workos/directory_user.rbi b/rbi/workos/directory_user.rbi index baaaaa95..a0e65e9a 100644 --- a/rbi/workos/directory_user.rbi +++ b/rbi/workos/directory_user.rbi @@ -57,6 +57,12 @@ module WorkOS sig { params(value: T.nilable(String)).returns(T.nilable(String)) } def last_name=(value); end + sig { returns(T.nilable(String)) } + def name; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def name=(value); end + sig { returns(T.nilable(T::Array[WorkOS::DirectoryUserEmail])) } def emails; end diff --git a/rbi/workos/directory_user_with_groups.rbi b/rbi/workos/directory_user_with_groups.rbi index 55fba4d7..61bddd7b 100644 --- a/rbi/workos/directory_user_with_groups.rbi +++ b/rbi/workos/directory_user_with_groups.rbi @@ -57,6 +57,12 @@ module WorkOS sig { params(value: T.nilable(String)).returns(T.nilable(String)) } def last_name=(value); end + sig { returns(T.nilable(String)) } + def name; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def name=(value); end + sig { returns(T.nilable(T::Array[WorkOS::DirectoryUserWithGroupsEmail])) } def emails; end diff --git a/rbi/workos/dsync_token_created.rbi b/rbi/workos/dsync_token_created.rbi new file mode 100644 index 00000000..33c31a56 --- /dev/null +++ b/rbi/workos/dsync_token_created.rbi @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +# typed: strong + +module WorkOS + class DsyncTokenCreated + sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } + def initialize(json); end + + sig { returns(String) } + def id; end + + sig { params(value: String).returns(String) } + def id=(value); end + + sig { returns(String) } + def event; end + + sig { params(value: String).returns(String) } + def event=(value); end + + sig { returns(WorkOS::DsyncTokenCreatedData) } + def data; end + + sig { params(value: WorkOS::DsyncTokenCreatedData).returns(WorkOS::DsyncTokenCreatedData) } + def data=(value); end + + sig { returns(String) } + def created_at; end + + sig { params(value: String).returns(String) } + def created_at=(value); end + + sig { returns(T.nilable(WorkOS::EventContext)) } + def context; end + + sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) } + def context=(value); end + + sig { returns(String) } + def object; end + + sig { params(value: String).returns(String) } + def object=(value); end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h; end + + sig { params(args: T.untyped).returns(String) } + def to_json(*args); end + end +end diff --git a/rbi/workos/dsync_token_created_data.rbi b/rbi/workos/dsync_token_created_data.rbi new file mode 100644 index 00000000..d05bc4d4 --- /dev/null +++ b/rbi/workos/dsync_token_created_data.rbi @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +# typed: strong + +module WorkOS + class DsyncTokenCreatedData + sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } + def initialize(json); end + + sig { returns(String) } + def object; end + + sig { params(value: String).returns(String) } + def object=(value); end + + sig { returns(String) } + def id; end + + sig { params(value: String).returns(String) } + def id=(value); end + + sig { returns(String) } + def directory_id; end + + sig { params(value: String).returns(String) } + def directory_id=(value); end + + sig { returns(T.nilable(String)) } + def organization_id; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def organization_id=(value); end + + sig { returns(String) } + def token_suffix; end + + sig { params(value: String).returns(String) } + def token_suffix=(value); end + + sig { returns(String) } + def created_at; end + + sig { params(value: String).returns(String) } + def created_at=(value); end + + sig { returns(T.nilable(String)) } + def expires_at; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def expires_at=(value); end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h; end + + sig { params(args: T.untyped).returns(String) } + def to_json(*args); end + end +end diff --git a/rbi/workos/dsync_token_deleted.rbi b/rbi/workos/dsync_token_deleted.rbi new file mode 100644 index 00000000..506805d3 --- /dev/null +++ b/rbi/workos/dsync_token_deleted.rbi @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +# typed: strong + +module WorkOS + class DsyncTokenDeleted + sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } + def initialize(json); end + + sig { returns(String) } + def id; end + + sig { params(value: String).returns(String) } + def id=(value); end + + sig { returns(String) } + def event; end + + sig { params(value: String).returns(String) } + def event=(value); end + + sig { returns(WorkOS::DsyncTokenDeletedData) } + def data; end + + sig { params(value: WorkOS::DsyncTokenDeletedData).returns(WorkOS::DsyncTokenDeletedData) } + def data=(value); end + + sig { returns(String) } + def created_at; end + + sig { params(value: String).returns(String) } + def created_at=(value); end + + sig { returns(T.nilable(WorkOS::EventContext)) } + def context; end + + sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) } + def context=(value); end + + sig { returns(String) } + def object; end + + sig { params(value: String).returns(String) } + def object=(value); end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h; end + + sig { params(args: T.untyped).returns(String) } + def to_json(*args); end + end +end diff --git a/rbi/workos/dsync_token_deleted_data.rbi b/rbi/workos/dsync_token_deleted_data.rbi new file mode 100644 index 00000000..1a0f788b --- /dev/null +++ b/rbi/workos/dsync_token_deleted_data.rbi @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +# typed: strong + +module WorkOS + class DsyncTokenDeletedData + sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } + def initialize(json); end + + sig { returns(String) } + def object; end + + sig { params(value: String).returns(String) } + def object=(value); end + + sig { returns(String) } + def id; end + + sig { params(value: String).returns(String) } + def id=(value); end + + sig { returns(String) } + def directory_id; end + + sig { params(value: String).returns(String) } + def directory_id=(value); end + + sig { returns(T.nilable(String)) } + def organization_id; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def organization_id=(value); end + + sig { returns(String) } + def token_suffix; end + + sig { params(value: String).returns(String) } + def token_suffix=(value); end + + sig { returns(String) } + def created_at; end + + sig { params(value: String).returns(String) } + def created_at=(value); end + + sig { returns(T.nilable(String)) } + def expires_at; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def expires_at=(value); end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h; end + + sig { params(args: T.untyped).returns(String) } + def to_json(*args); end + end +end diff --git a/rbi/workos/dsync_user_updated_data.rbi b/rbi/workos/dsync_user_updated_data.rbi index a96b6925..f1d26b09 100644 --- a/rbi/workos/dsync_user_updated_data.rbi +++ b/rbi/workos/dsync_user_updated_data.rbi @@ -57,6 +57,12 @@ module WorkOS sig { params(value: T.nilable(String)).returns(T.nilable(String)) } def last_name=(value); end + sig { returns(T.nilable(String)) } + def name; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def name=(value); end + sig { returns(T.nilable(T::Array[WorkOS::DsyncUserUpdatedDataEmail])) } def emails; end diff --git a/rbi/workos/organization_membership.rbi b/rbi/workos/organization_membership.rbi index f51180a2..90776d84 100644 --- a/rbi/workos/organization_membership.rbi +++ b/rbi/workos/organization_membership.rbi @@ -75,6 +75,12 @@ module WorkOS sig { params(value: WorkOS::SlimRole).returns(WorkOS::SlimRole) } def role=(value); end + sig { returns(WorkOS::User) } + def user; end + + sig { params(value: WorkOS::User).returns(WorkOS::User) } + def user=(value); end + sig { returns(T::Hash[Symbol, T.untyped]) } def to_h; end diff --git a/rbi/workos/profile.rbi b/rbi/workos/profile.rbi index fc021e14..d2ff5e40 100644 --- a/rbi/workos/profile.rbi +++ b/rbi/workos/profile.rbi @@ -63,6 +63,12 @@ module WorkOS sig { params(value: T.nilable(String)).returns(T.nilable(String)) } def last_name=(value); end + sig { returns(T.nilable(String)) } + def name; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def name=(value); end + sig { returns(T.nilable(WorkOS::SlimRole)) } def role; end diff --git a/rbi/workos/user_organization_membership.rbi b/rbi/workos/user_organization_membership.rbi index 5ebf5d51..06990a12 100644 --- a/rbi/workos/user_organization_membership.rbi +++ b/rbi/workos/user_organization_membership.rbi @@ -75,6 +75,12 @@ module WorkOS sig { params(value: WorkOS::SlimRole).returns(WorkOS::SlimRole) } def role=(value); end + sig { returns(WorkOS::User) } + def user; end + + sig { params(value: WorkOS::User).returns(WorkOS::User) } + def user=(value); end + sig { returns(T::Hash[Symbol, T.untyped]) } def to_h; end diff --git a/rbi/workos/user_organization_membership_base_with_user.rbi b/rbi/workos/user_organization_membership_base_with_user.rbi new file mode 100644 index 00000000..012548dd --- /dev/null +++ b/rbi/workos/user_organization_membership_base_with_user.rbi @@ -0,0 +1,84 @@ +# frozen_string_literal: true + +# This file is auto-generated by oagen. Do not edit. + +# typed: strong + +module WorkOS + class UserOrganizationMembershipBaseWithUser + sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void } + def initialize(json); end + + sig { returns(String) } + def object; end + + sig { params(value: String).returns(String) } + def object=(value); end + + sig { returns(String) } + def id; end + + sig { params(value: String).returns(String) } + def id=(value); end + + sig { returns(String) } + def user_id; end + + sig { params(value: String).returns(String) } + def user_id=(value); end + + sig { returns(String) } + def organization_id; end + + sig { params(value: String).returns(String) } + def organization_id=(value); end + + sig { returns(String) } + def status; end + + sig { params(value: String).returns(String) } + def status=(value); end + + sig { returns(T::Boolean) } + def directory_managed; end + + sig { params(value: T::Boolean).returns(T::Boolean) } + def directory_managed=(value); end + + sig { returns(T.nilable(String)) } + def organization_name; end + + sig { params(value: T.nilable(String)).returns(T.nilable(String)) } + def organization_name=(value); end + + sig { returns(T.nilable(T::Hash[String, T.untyped])) } + def custom_attributes; end + + sig { params(value: T.nilable(T::Hash[String, T.untyped])).returns(T.nilable(T::Hash[String, T.untyped])) } + def custom_attributes=(value); end + + sig { returns(String) } + def created_at; end + + sig { params(value: String).returns(String) } + def created_at=(value); end + + sig { returns(String) } + def updated_at; end + + sig { params(value: String).returns(String) } + def updated_at=(value); end + + sig { returns(WorkOS::User) } + def user; end + + sig { params(value: WorkOS::User).returns(WorkOS::User) } + def user=(value); end + + sig { returns(T::Hash[Symbol, T.untyped]) } + def to_h; end + + sig { params(args: T.untyped).returns(String) } + def to_json(*args); end + end +end diff --git a/test/workos/test_model_round_trip.rb b/test/workos/test_model_round_trip.rb index b5b481c7..52e56531 100644 --- a/test/workos/test_model_round_trip.rb +++ b/test/workos/test_model_round_trip.rb @@ -880,30 +880,6 @@ def test_external_auth_complete_response_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end - def test_api_key_round_trip - fixture = { - "object" => "api_key", - "id" => "stub", - "owner" => {}, - "name" => "stub", - "obfuscated_value" => "stub", - "last_used_at" => nil, - "permissions" => [], - "created_at" => "stub", - "updated_at" => "stub" - } - model = WorkOS::ApiKey.new(fixture.to_json) - json = model.to_h - assert_kind_of Hash, json - assert_equal fixture["id"], json[:id] - assert_equal fixture["name"], json[:name] - assert_equal fixture["obfuscated_value"], json[:obfuscated_value] - assert_nil json[:last_used_at] - assert_equal fixture["created_at"], json[:created_at] - assert_equal fixture["updated_at"], json[:updated_at] - fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } - end - def test_api_key_validation_response_round_trip fixture = { "api_key" => nil @@ -1238,6 +1214,64 @@ def test_role_list_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end + def test_user_round_trip + fixture = { + "object" => "user", + "id" => "stub", + "first_name" => nil, + "last_name" => nil, + "profile_picture_url" => nil, + "email" => "stub", + "email_verified" => true, + "external_id" => nil, + "metadata" => {}, + "last_sign_in_at" => nil, + "locale" => nil, + "created_at" => "stub", + "updated_at" => "stub" + } + model = WorkOS::User.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_nil json[:first_name] + assert_nil json[:last_name] + assert_nil json[:profile_picture_url] + assert_equal fixture["email"], json[:email] + assert_equal fixture["email_verified"], json[:email_verified] + assert_nil json[:external_id] + assert_nil json[:last_sign_in_at] + assert_equal fixture["created_at"], json[:created_at] + assert_equal fixture["updated_at"], json[:updated_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + + def test_user_organization_membership_base_with_user_round_trip + fixture = { + "object" => "organization_membership", + "id" => "stub", + "user_id" => "stub", + "organization_id" => "stub", + "status" => "stub", + "directory_managed" => true, + "organization_name" => "stub", + "custom_attributes" => {}, + "created_at" => "stub", + "updated_at" => "stub", + "user" => {} + } + model = WorkOS::UserOrganizationMembershipBaseWithUser.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_equal fixture["user_id"], json[:user_id] + assert_equal fixture["organization_id"], json[:organization_id] + assert_equal fixture["directory_managed"], json[:directory_managed] + assert_equal fixture["created_at"], json[:created_at] + assert_equal fixture["updated_at"], json[:updated_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + def test_connection_round_trip fixture = { "object" => "connection", @@ -1341,6 +1375,7 @@ def test_directory_user_with_groups_round_trip "email" => nil, "first_name" => nil, "last_name" => nil, + "name" => nil, "emails" => [], "job_title" => nil, "username" => nil, @@ -1427,6 +1462,7 @@ def test_directory_user_round_trip "email" => nil, "first_name" => nil, "last_name" => nil, + "name" => nil, "emails" => [], "job_title" => nil, "username" => nil, @@ -1451,38 +1487,6 @@ def test_directory_user_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end - def test_user_round_trip - fixture = { - "object" => "user", - "id" => "stub", - "first_name" => nil, - "last_name" => nil, - "profile_picture_url" => nil, - "email" => "stub", - "email_verified" => true, - "external_id" => nil, - "metadata" => {}, - "last_sign_in_at" => nil, - "locale" => nil, - "created_at" => "stub", - "updated_at" => "stub" - } - model = WorkOS::User.new(fixture.to_json) - json = model.to_h - assert_kind_of Hash, json - assert_equal fixture["id"], json[:id] - assert_nil json[:first_name] - assert_nil json[:last_name] - assert_nil json[:profile_picture_url] - assert_equal fixture["email"], json[:email] - assert_equal fixture["email_verified"], json[:email_verified] - assert_nil json[:external_id] - assert_nil json[:last_sign_in_at] - assert_equal fixture["created_at"], json[:created_at] - assert_equal fixture["updated_at"], json[:updated_at] - fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } - end - def test_waitlist_user_round_trip fixture = { "object" => "waitlist_user", @@ -2988,6 +2992,82 @@ def test_dsync_group_updated_data_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end + def test_dsync_token_created_round_trip + fixture = { + "id" => "stub", + "event" => "dsync.token.created", + "data" => {}, + "created_at" => "stub", + "context" => {}, + "object" => "event" + } + model = WorkOS::DsyncTokenCreated.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_equal fixture["created_at"], json[:created_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + + def test_dsync_token_created_data_round_trip + fixture = { + "object" => "directory_token", + "id" => "stub", + "directory_id" => "stub", + "organization_id" => "stub", + "token_suffix" => "stub", + "created_at" => "stub", + "expires_at" => nil + } + model = WorkOS::DsyncTokenCreatedData.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_equal fixture["directory_id"], json[:directory_id] + assert_equal fixture["token_suffix"], json[:token_suffix] + assert_equal fixture["created_at"], json[:created_at] + assert_nil json[:expires_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + + def test_dsync_token_deleted_round_trip + fixture = { + "id" => "stub", + "event" => "dsync.token.deleted", + "data" => {}, + "created_at" => "stub", + "context" => {}, + "object" => "event" + } + model = WorkOS::DsyncTokenDeleted.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_equal fixture["created_at"], json[:created_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + + def test_dsync_token_deleted_data_round_trip + fixture = { + "object" => "directory_token", + "id" => "stub", + "directory_id" => "stub", + "organization_id" => "stub", + "token_suffix" => "stub", + "created_at" => "stub", + "expires_at" => nil + } + model = WorkOS::DsyncTokenDeletedData.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_equal fixture["directory_id"], json[:directory_id] + assert_equal fixture["token_suffix"], json[:token_suffix] + assert_equal fixture["created_at"], json[:created_at] + assert_nil json[:expires_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + def test_dsync_group_user_added_round_trip fixture = { "id" => "stub", @@ -3109,6 +3189,7 @@ def test_dsync_user_updated_data_round_trip "email" => nil, "first_name" => nil, "last_name" => nil, + "name" => nil, "emails" => [], "job_title" => nil, "username" => nil, @@ -5616,6 +5697,30 @@ def test_flag_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end + def test_api_key_round_trip + fixture = { + "object" => "api_key", + "id" => "stub", + "owner" => {}, + "name" => "stub", + "obfuscated_value" => "stub", + "last_used_at" => nil, + "permissions" => [], + "created_at" => "stub", + "updated_at" => "stub" + } + model = WorkOS::ApiKey.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_equal fixture["name"], json[:name] + assert_equal fixture["obfuscated_value"], json[:obfuscated_value] + assert_nil json[:last_used_at] + assert_equal fixture["created_at"], json[:created_at] + assert_equal fixture["updated_at"], json[:updated_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + def test_api_key_with_value_round_trip fixture = { "object" => "api_key", @@ -5879,7 +5984,8 @@ def test_user_organization_membership_round_trip "custom_attributes" => {}, "created_at" => "stub", "updated_at" => "stub", - "role" => {} + "role" => {}, + "user" => {} } model = WorkOS::UserOrganizationMembership.new(fixture.to_json) json = model.to_h @@ -6081,6 +6187,7 @@ def test_profile_round_trip "email" => "stub", "first_name" => nil, "last_name" => nil, + "name" => nil, "role" => nil, "roles" => nil, "groups" => [], @@ -6097,6 +6204,7 @@ def test_profile_round_trip assert_equal fixture["email"], json[:email] assert_nil json[:first_name] assert_nil json[:last_name] + assert_nil json[:name] fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end @@ -6307,6 +6415,18 @@ def test_api_key_with_value_owner_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end + def test_api_key_owner_round_trip + fixture = { + "type" => "organization", + "id" => "stub" + } + model = WorkOS::ApiKeyOwner.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + def test_flag_owner_round_trip fixture = { "email" => "stub", @@ -6358,6 +6478,31 @@ def test_event_context_google_analytics_session_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end + def test_user_organization_membership_base_list_data_round_trip + fixture = { + "object" => "organization_membership", + "id" => "stub", + "user_id" => "stub", + "organization_id" => "stub", + "status" => "stub", + "directory_managed" => true, + "organization_name" => "stub", + "custom_attributes" => {}, + "created_at" => "stub", + "updated_at" => "stub" + } + model = WorkOS::UserOrganizationMembershipBaseListData.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + assert_equal fixture["user_id"], json[:user_id] + assert_equal fixture["organization_id"], json[:organization_id] + assert_equal fixture["directory_managed"], json[:directory_managed] + assert_equal fixture["created_at"], json[:created_at] + assert_equal fixture["updated_at"], json[:updated_at] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + def test_directory_user_with_groups_email_round_trip fixture = { "primary" => true, @@ -6407,31 +6552,6 @@ def test_connection_option_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end - def test_user_organization_membership_base_list_data_round_trip - fixture = { - "object" => "organization_membership", - "id" => "stub", - "user_id" => "stub", - "organization_id" => "stub", - "status" => "stub", - "directory_managed" => true, - "organization_name" => "stub", - "custom_attributes" => {}, - "created_at" => "stub", - "updated_at" => "stub" - } - model = WorkOS::UserOrganizationMembershipBaseListData.new(fixture.to_json) - json = model.to_h - assert_kind_of Hash, json - assert_equal fixture["id"], json[:id] - assert_equal fixture["user_id"], json[:user_id] - assert_equal fixture["organization_id"], json[:organization_id] - assert_equal fixture["directory_managed"], json[:directory_managed] - assert_equal fixture["created_at"], json[:created_at] - assert_equal fixture["updated_at"], json[:updated_at] - fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } - end - def test_role_assignment_resource_round_trip fixture = { "id" => "stub", @@ -6538,15 +6658,27 @@ def test_authorized_connect_application_list_data_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end - def test_api_key_owner_round_trip + def test_api_key_validation_response_api_key_round_trip fixture = { - "type" => "organization", - "id" => "stub" + "object" => "api_key", + "id" => "stub", + "owner" => {}, + "name" => "stub", + "obfuscated_value" => "stub", + "last_used_at" => nil, + "permissions" => [], + "created_at" => "stub", + "updated_at" => "stub" } - model = WorkOS::ApiKeyOwner.new(fixture.to_json) + model = WorkOS::ApiKeyValidationResponseApiKey.new(fixture.to_json) json = model.to_h assert_kind_of Hash, json assert_equal fixture["id"], json[:id] + assert_equal fixture["name"], json[:name] + assert_equal fixture["obfuscated_value"], json[:obfuscated_value] + assert_nil json[:last_used_at] + assert_equal fixture["created_at"], json[:created_at] + assert_equal fixture["updated_at"], json[:updated_at] fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end @@ -6990,7 +7122,8 @@ def test_organization_membership_round_trip "custom_attributes" => {}, "created_at" => "stub", "updated_at" => "stub", - "role" => {} + "role" => {}, + "user" => {} } model = WorkOS::OrganizationMembership.new(fixture.to_json) json = model.to_h @@ -7103,6 +7236,18 @@ def test_user_sessions_impersonator_round_trip fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } end + def test_api_key_validation_response_api_key_owner_round_trip + fixture = { + "type" => "organization", + "id" => "stub" + } + model = WorkOS::ApiKeyValidationResponseApiKeyOwner.new(fixture.to_json) + json = model.to_h + assert_kind_of Hash, json + assert_equal fixture["id"], json[:id] + fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" } + end + def test_directory_metadata_user_round_trip fixture = { "active" => 1,