workos 7.1.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +46 -0
  3. data/.gitignore +2 -0
  4. data/.last-synced-sha +1 -1
  5. data/.oagen-manifest.json +61 -40
  6. data/.release-please-manifest.json +1 -1
  7. data/.yardopts +6 -0
  8. data/CHANGELOG.md +38 -0
  9. data/Gemfile +6 -0
  10. data/Gemfile.lock +33 -2
  11. data/lib/workos/api_keys/api_key.rb +1 -1
  12. data/lib/workos/api_keys/api_key_created_data.rb +1 -1
  13. data/lib/workos/api_keys/organization_api_key.rb +43 -0
  14. data/lib/workos/{types/events_order.rb → api_keys/organization_api_key_owner.rb} +1 -3
  15. data/lib/workos/api_keys/organization_api_key_with_value.rb +46 -0
  16. data/lib/workos/{types/audit_logs_order.rb → api_keys/organization_api_key_with_value_owner.rb} +1 -3
  17. data/lib/workos/api_keys.rb +46 -46
  18. data/lib/workos/audit_logs.rb +6 -6
  19. data/lib/workos/authorization/user_organization_membership_base_list_data.rb +5 -2
  20. data/lib/workos/authorization/{role_assignment.rb → user_role_assignment.rb} +5 -2
  21. data/lib/workos/authorization/{role_assignment_resource.rb → user_role_assignment_resource.rb} +1 -1
  22. data/lib/workos/authorization.rb +250 -138
  23. data/lib/workos/base_client.rb +6 -1
  24. data/lib/workos/client.rb +4 -4
  25. data/lib/workos/connect.rb +2 -2
  26. data/lib/workos/directory_sync/directory_user.rb +3 -0
  27. data/lib/workos/directory_sync/directory_user_with_groups.rb +4 -1
  28. data/lib/workos/directory_sync/dsync_user_updated_data.rb +3 -0
  29. data/lib/workos/directory_sync.rb +6 -6
  30. data/lib/workos/encryptors/aes_gcm.rb +35 -3
  31. data/lib/workos/events.rb +2 -2
  32. data/lib/workos/feature_flags.rb +6 -6
  33. data/lib/workos/groups.rb +5 -5
  34. data/lib/workos/multi_factor_auth.rb +3 -3
  35. data/lib/workos/organization_domains.rb +1 -1
  36. data/lib/workos/organizations.rb +2 -2
  37. data/lib/workos/radar.rb +2 -2
  38. data/lib/workos/sso/profile.rb +3 -0
  39. data/lib/workos/sso.rb +4 -4
  40. data/lib/workos/types/event_context_actor_source.rb +2 -1
  41. data/lib/workos/types/{applications_order.rb → pagination_order.rb} +1 -1
  42. data/lib/workos/types/{vault_byok_key_verification_completed_data_key_provider.rb → vault_byok_key_provider.rb} +1 -1
  43. data/lib/workos/user_management/create_user_api_key.rb +25 -0
  44. data/lib/workos/user_management/organization_membership.rb +5 -2
  45. data/lib/workos/user_management/user_api_key.rb +43 -0
  46. data/lib/workos/user_management/user_api_key_created_data_owner.rb +25 -0
  47. data/lib/workos/{api_keys/api_key_with_value_owner.rb → user_management/user_api_key_owner.rb} +1 -1
  48. data/lib/workos/{types/webhooks_order.rb → user_management/user_api_key_revoked_data_owner.rb} +1 -3
  49. data/lib/workos/{api_keys/api_key_with_value.rb → user_management/user_api_key_with_value.rb} +2 -2
  50. data/lib/workos/{types/groups_order.rb → user_management/user_api_key_with_value_owner.rb} +1 -3
  51. data/lib/workos/user_management/user_organization_membership.rb +5 -2
  52. data/lib/workos/user_management.rb +181 -75
  53. data/lib/workos/user_management_organization_membership_groups.rb +2 -2
  54. data/lib/workos/vault/vault_byok_key_deleted.rb +34 -0
  55. data/lib/workos/vault/vault_byok_key_deleted_data.rb +22 -0
  56. data/lib/workos/version.rb +1 -1
  57. data/lib/workos/webhooks.rb +3 -3
  58. data/rbi/workos/api_key.rbi +2 -2
  59. data/rbi/workos/api_key_created_data.rbi +2 -2
  60. data/rbi/workos/api_key_revoked_data.rbi +2 -2
  61. data/rbi/workos/api_keys.rbi +17 -17
  62. data/rbi/workos/authorization.rbi +127 -27
  63. data/rbi/workos/client.rbi +3 -3
  64. data/rbi/workos/create_user_api_key.rbi +36 -0
  65. data/rbi/workos/directory_user.rbi +6 -0
  66. data/rbi/workos/directory_user_with_groups.rbi +6 -0
  67. data/rbi/workos/dsync_user_updated_data.rbi +6 -0
  68. data/rbi/workos/organization_api_key.rbi +72 -0
  69. data/rbi/workos/{api_key_with_value_owner.rbi → organization_api_key_owner.rbi} +1 -1
  70. data/rbi/workos/organization_api_key_with_value.rbi +78 -0
  71. data/rbi/workos/organization_api_key_with_value_owner.rbi +30 -0
  72. data/rbi/workos/organization_membership.rbi +6 -0
  73. data/rbi/workos/profile.rbi +6 -0
  74. data/rbi/workos/user_api_key.rbi +72 -0
  75. data/rbi/workos/user_api_key_created_data_owner.rbi +36 -0
  76. data/rbi/workos/user_api_key_owner.rbi +36 -0
  77. data/rbi/workos/user_api_key_revoked_data_owner.rbi +36 -0
  78. data/rbi/workos/{api_key_with_value.rbi → user_api_key_with_value.rbi} +3 -3
  79. data/rbi/workos/user_api_key_with_value_owner.rbi +36 -0
  80. data/rbi/workos/user_management.rbi +91 -14
  81. data/rbi/workos/user_organization_membership.rbi +6 -0
  82. data/rbi/workos/user_organization_membership_base_list_data.rbi +6 -0
  83. data/rbi/workos/{role_assignment.rbi → user_role_assignment.rbi} +9 -3
  84. data/rbi/workos/{role_assignment_resource.rbi → user_role_assignment_resource.rbi} +1 -1
  85. data/rbi/workos/vault_byok_key_deleted.rbi +54 -0
  86. data/rbi/workos/vault_byok_key_deleted_data.rbi +30 -0
  87. data/script/docs +16 -0
  88. data/script/docs-serve +12 -0
  89. data/script/llms-txt +37 -0
  90. data/test/workos/test_api_keys.rb +17 -17
  91. data/test/workos/test_audit_logs.rb +2 -2
  92. data/test/workos/test_authorization.rb +102 -20
  93. data/test/workos/test_encryptors_aes_gcm.rb +21 -0
  94. data/test/workos/test_model_round_trip.rb +278 -83
  95. data/test/workos/test_session.rb +68 -0
  96. data/test/workos/test_user_management.rb +69 -9
  97. data/test/workos/test_webhooks.rb +2 -2
  98. metadata +39 -33
  99. data/lib/workos/types/authorization_order.rb +0 -9
  100. data/lib/workos/types/connections_order.rb +0 -9
  101. data/lib/workos/types/directories_order.rb +0 -9
  102. data/lib/workos/types/directory_groups_order.rb +0 -9
  103. data/lib/workos/types/directory_users_order.rb +0 -9
  104. data/lib/workos/types/feature_flags_order.rb +0 -9
  105. data/lib/workos/types/organizations_api_keys_order.rb +0 -9
  106. data/lib/workos/types/organizations_feature_flags_order.rb +0 -9
  107. data/lib/workos/types/organizations_order.rb +0 -9
  108. data/lib/workos/types/permissions_order.rb +0 -9
  109. data/lib/workos/types/user_management_invitations_order.rb +0 -9
  110. data/lib/workos/types/user_management_multi_factor_authentication_order.rb +0 -9
  111. data/lib/workos/types/user_management_organization_membership_groups_order.rb +0 -9
  112. data/lib/workos/types/user_management_organization_membership_order.rb +0 -9
  113. data/lib/workos/types/user_management_users_authorized_applications_order.rb +0 -9
  114. data/lib/workos/types/user_management_users_feature_flags_order.rb +0 -9
  115. data/lib/workos/types/user_management_users_order.rb +0 -9
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ class OrganizationApiKeyWithValue < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ object: :object,
9
+ id: :id,
10
+ owner: :owner,
11
+ name: :name,
12
+ obfuscated_value: :obfuscated_value,
13
+ last_used_at: :last_used_at,
14
+ permissions: :permissions,
15
+ created_at: :created_at,
16
+ updated_at: :updated_at,
17
+ value: :value
18
+ }.freeze
19
+
20
+ attr_accessor \
21
+ :object,
22
+ :id,
23
+ :owner,
24
+ :name,
25
+ :obfuscated_value,
26
+ :last_used_at,
27
+ :permissions,
28
+ :created_at,
29
+ :updated_at,
30
+ :value
31
+
32
+ def initialize(json)
33
+ hash = self.class.normalize(json)
34
+ @object = hash[:object]
35
+ @id = hash[:id]
36
+ @owner = hash[:owner] ? WorkOS::OrganizationApiKeyWithValueOwner.new(hash[:owner]) : nil
37
+ @name = hash[:name]
38
+ @obfuscated_value = hash[:obfuscated_value]
39
+ @last_used_at = hash[:last_used_at]
40
+ @permissions = hash[:permissions] || []
41
+ @created_at = hash[:created_at]
42
+ @updated_at = hash[:updated_at]
43
+ @value = hash[:value]
44
+ end
45
+ end
46
+ end
@@ -3,7 +3,5 @@
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
5
  module WorkOS
6
- module Types
7
- AuditLogsOrder = ApplicationsOrder
8
- end
6
+ OrganizationApiKeyWithValueOwner = ApiKeyCreatedDataOwner
9
7
  end
@@ -10,59 +10,19 @@ module WorkOS
10
10
  @client = client
11
11
  end
12
12
 
13
- # Validate API key
14
- # @param value [String] The value for an API key.
15
- # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
16
- # @return [WorkOS::ApiKeyValidationResponse]
17
- def create_validation(
18
- value:,
19
- request_options: {}
20
- )
21
- body = {
22
- "value" => value
23
- }.compact
24
- response = @client.request(
25
- method: :post,
26
- path: "/api_keys/validations",
27
- auth: true,
28
- body: body,
29
- request_options: request_options
30
- )
31
- result = WorkOS::ApiKeyValidationResponse.new(response.body)
32
- result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
33
- result
34
- end
35
-
36
- # Delete an API key
37
- # @param id [String] The unique ID of the API key.
38
- # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
39
- # @return [void]
40
- def delete_api_key(
41
- id:,
42
- request_options: {}
43
- )
44
- @client.request(
45
- method: :delete,
46
- path: "/api_keys/#{WorkOS::Util.encode_path(id)}",
47
- auth: true,
48
- request_options: request_options
49
- )
50
- nil
51
- end
52
-
53
13
  # List API keys for an organization
54
14
  # @param organization_id [String] Unique identifier of the Organization.
55
15
  # @param before [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
56
16
  # @param after [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
57
17
  # @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
58
- # @param order [WorkOS::Types::OrganizationsApiKeysOrder, nil] Order the results by the creation time.
18
+ # @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time.
59
19
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
60
- # @return [WorkOS::Types::ListStruct<WorkOS::ApiKey>]
20
+ # @return [WorkOS::Types::ListStruct<WorkOS::OrganizationApiKey>]
61
21
  def list_organization_api_keys(
62
22
  organization_id:,
63
23
  before: nil,
64
24
  after: nil,
65
- limit: nil,
25
+ limit: 10,
66
26
  order: "desc",
67
27
  request_options: {}
68
28
  )
@@ -91,7 +51,7 @@ module WorkOS
91
51
  }
92
52
  WorkOS::Types::ListStruct.from_response(
93
53
  response,
94
- model: WorkOS::ApiKey,
54
+ model: WorkOS::OrganizationApiKey,
95
55
  filters: {organization_id: organization_id, before: before, limit: limit, order: order},
96
56
  fetch_next: fetch_next
97
57
  )
@@ -102,7 +62,7 @@ module WorkOS
102
62
  # @param name [String] The name for the API key.
103
63
  # @param permissions [Array<String>, nil] The permission slugs to assign to the API key.
104
64
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
105
- # @return [WorkOS::ApiKeyWithValue]
65
+ # @return [WorkOS::OrganizationApiKeyWithValue]
106
66
  def create_organization_api_key(
107
67
  organization_id:,
108
68
  name:,
@@ -120,9 +80,49 @@ module WorkOS
120
80
  body: body,
121
81
  request_options: request_options
122
82
  )
123
- result = WorkOS::ApiKeyWithValue.new(response.body)
83
+ result = WorkOS::OrganizationApiKeyWithValue.new(response.body)
124
84
  result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
125
85
  result
126
86
  end
87
+
88
+ # Validate API key
89
+ # @param value [String] The value for an API key.
90
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
91
+ # @return [WorkOS::ApiKeyValidationResponse]
92
+ def create_validation(
93
+ value:,
94
+ request_options: {}
95
+ )
96
+ body = {
97
+ "value" => value
98
+ }
99
+ response = @client.request(
100
+ method: :post,
101
+ path: "/api_keys/validations",
102
+ auth: true,
103
+ body: body,
104
+ request_options: request_options
105
+ )
106
+ result = WorkOS::ApiKeyValidationResponse.new(response.body)
107
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
108
+ result
109
+ end
110
+
111
+ # Delete an API key
112
+ # @param id [String] The unique ID of the API key.
113
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
114
+ # @return [void]
115
+ def delete_api_key(
116
+ id:,
117
+ request_options: {}
118
+ )
119
+ @client.request(
120
+ method: :delete,
121
+ path: "/api_keys/#{WorkOS::Util.encode_path(id)}",
122
+ auth: true,
123
+ request_options: request_options
124
+ )
125
+ nil
126
+ end
127
127
  end
128
128
  end
@@ -41,7 +41,7 @@ module WorkOS
41
41
  )
42
42
  body = {
43
43
  "retention_period_in_days" => retention_period_in_days
44
- }.compact
44
+ }
45
45
  response = @client.request(
46
46
  method: :put,
47
47
  path: "/organizations/#{WorkOS::Util.encode_path(id)}/audit_logs_retention",
@@ -58,13 +58,13 @@ module WorkOS
58
58
  # @param before [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
59
59
  # @param after [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
60
60
  # @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
61
- # @param order [WorkOS::Types::AuditLogsOrder, nil] Order the results by the creation time.
61
+ # @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time.
62
62
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
63
63
  # @return [WorkOS::Types::ListStruct<WorkOS::AuditLogActionJson>]
64
64
  def list_actions(
65
65
  before: nil,
66
66
  after: nil,
67
- limit: nil,
67
+ limit: 10,
68
68
  order: "desc",
69
69
  request_options: {}
70
70
  )
@@ -103,14 +103,14 @@ module WorkOS
103
103
  # @param before [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
104
104
  # @param after [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
105
105
  # @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
106
- # @param order [WorkOS::Types::AuditLogsOrder, nil] Order the results by the creation time.
106
+ # @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time.
107
107
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
108
108
  # @return [WorkOS::Types::ListStruct<WorkOS::AuditLogSchemaJson>]
109
109
  def list_action_schemas(
110
110
  action_name:,
111
111
  before: nil,
112
112
  after: nil,
113
- limit: nil,
113
+ limit: 10,
114
114
  order: "desc",
115
115
  request_options: {}
116
116
  )
@@ -189,7 +189,7 @@ module WorkOS
189
189
  body = {
190
190
  "organization_id" => organization_id,
191
191
  "event" => event
192
- }.compact
192
+ }
193
193
  response = @client.request(
194
194
  method: :post,
195
195
  path: "/audit_logs/events",
@@ -14,7 +14,8 @@ module WorkOS
14
14
  organization_name: :organization_name,
15
15
  custom_attributes: :custom_attributes,
16
16
  created_at: :created_at,
17
- updated_at: :updated_at
17
+ updated_at: :updated_at,
18
+ user: :user
18
19
  }.freeze
19
20
 
20
21
  attr_accessor \
@@ -27,7 +28,8 @@ module WorkOS
27
28
  :organization_name,
28
29
  :custom_attributes,
29
30
  :created_at,
30
- :updated_at
31
+ :updated_at,
32
+ :user
31
33
 
32
34
  def initialize(json)
33
35
  hash = self.class.normalize(json)
@@ -41,6 +43,7 @@ module WorkOS
41
43
  @custom_attributes = hash[:custom_attributes] || {}
42
44
  @created_at = hash[:created_at]
43
45
  @updated_at = hash[:updated_at]
46
+ @user = hash[:user] ? WorkOS::User.new(hash[:user]) : nil
44
47
  end
45
48
  end
46
49
  end
@@ -3,10 +3,11 @@
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
5
  module WorkOS
6
- class RoleAssignment < WorkOS::Types::BaseModel
6
+ class UserRoleAssignment < WorkOS::Types::BaseModel
7
7
  HASH_ATTRS = {
8
8
  object: :object,
9
9
  id: :id,
10
+ organization_membership_id: :organization_membership_id,
10
11
  role: :role,
11
12
  resource: :resource,
12
13
  created_at: :created_at,
@@ -16,6 +17,7 @@ module WorkOS
16
17
  attr_accessor \
17
18
  :object,
18
19
  :id,
20
+ :organization_membership_id,
19
21
  :role,
20
22
  :resource,
21
23
  :created_at,
@@ -25,8 +27,9 @@ module WorkOS
25
27
  hash = self.class.normalize(json)
26
28
  @object = hash[:object]
27
29
  @id = hash[:id]
30
+ @organization_membership_id = hash[:organization_membership_id]
28
31
  @role = hash[:role] ? WorkOS::SlimRole.new(hash[:role]) : nil
29
- @resource = hash[:resource] ? WorkOS::RoleAssignmentResource.new(hash[:resource]) : nil
32
+ @resource = hash[:resource] ? WorkOS::UserRoleAssignmentResource.new(hash[:resource]) : nil
30
33
  @created_at = hash[:created_at]
31
34
  @updated_at = hash[:updated_at]
32
35
  end
@@ -3,7 +3,7 @@
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
5
  module WorkOS
6
- class RoleAssignmentResource < WorkOS::Types::BaseModel
6
+ class UserRoleAssignmentResource < WorkOS::Types::BaseModel
7
7
  HASH_ATTRS = {
8
8
  id: :id,
9
9
  external_id: :external_id,