cadenya 0.2.0 → 0.4.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 (144) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +6 -6
  4. data/lib/cadenya/client.rb +18 -0
  5. data/lib/cadenya/internal/cursor_pagination.rb +2 -2
  6. data/lib/cadenya/models/agent_spec.rb +19 -4
  7. data/lib/cadenya/models/agents/webhook_delivery_data.rb +1 -0
  8. data/lib/cadenya/models/agents/webhook_delivery_list_params.rb +1 -0
  9. data/lib/cadenya/models/ai_provider_key.rb +30 -0
  10. data/lib/cadenya/models/ai_provider_key_create_params.rb +41 -0
  11. data/lib/cadenya/models/ai_provider_key_delete_params.rb +26 -0
  12. data/lib/cadenya/models/ai_provider_key_list_params.rb +61 -0
  13. data/lib/cadenya/models/ai_provider_key_retrieve_params.rb +26 -0
  14. data/lib/cadenya/models/ai_provider_key_spec.rb +36 -0
  15. data/lib/cadenya/models/ai_provider_key_update_params.rb +56 -0
  16. data/lib/cadenya/models/approval_requirement_filter.rb +26 -0
  17. data/lib/cadenya/models/attribute_filter.rb +38 -0
  18. data/lib/cadenya/models/objective_data.rb +21 -1
  19. data/lib/cadenya/models/objective_event_data.rb +32 -1
  20. data/lib/cadenya/models/objective_list_params.rb +2 -1
  21. data/lib/cadenya/models/objective_status.rb +2 -1
  22. data/lib/cadenya/models/profile_spec.rb +1 -0
  23. data/lib/cadenya/models/string_matcher.rb +47 -0
  24. data/lib/cadenya/models/tool_filter.rb +35 -0
  25. data/lib/cadenya/models/tool_set_adapter.rb +7 -1
  26. data/lib/cadenya/models/tool_set_adapter_mcp.rb +11 -33
  27. data/lib/cadenya/models/tool_set_adapter_openapi.rb +79 -0
  28. data/lib/cadenya/models/tool_set_get_openapi_spec_params.rb +26 -0
  29. data/lib/cadenya/models/tool_set_get_openapi_spec_response.rb +17 -0
  30. data/lib/cadenya/models/tool_sets/config_openapi.rb +29 -0
  31. data/lib/cadenya/models/tool_sets/tool_spec_config.rb +7 -1
  32. data/lib/cadenya/models/workspace.rb +27 -1
  33. data/lib/cadenya/models/workspace_admin/member_add_params.rb +39 -0
  34. data/lib/cadenya/models/workspace_admin/member_list_params.rb +39 -0
  35. data/lib/cadenya/models/workspace_admin/member_remove_params.rb +28 -0
  36. data/lib/cadenya/models/workspace_admin/profile_list_params.rb +44 -0
  37. data/lib/cadenya/models/workspace_admin_archive_params.rb +20 -0
  38. data/lib/cadenya/models/workspace_admin_create_params.rb +70 -0
  39. data/lib/cadenya/models/workspace_admin_list_params.rb +42 -0
  40. data/lib/cadenya/models/workspace_admin_retrieve_params.rb +20 -0
  41. data/lib/cadenya/models/workspace_admin_update_params.rb +85 -0
  42. data/lib/cadenya/models/workspace_member.rb +53 -0
  43. data/lib/cadenya/models.rb +40 -2
  44. data/lib/cadenya/resources/ai_provider_keys.rb +168 -0
  45. data/lib/cadenya/resources/tool_sets.rb +31 -0
  46. data/lib/cadenya/resources/workspace_admin/members.rb +107 -0
  47. data/lib/cadenya/resources/workspace_admin/profiles.rb +54 -0
  48. data/lib/cadenya/resources/workspace_admin.rb +173 -0
  49. data/lib/cadenya/resources/workspaces.rb +4 -0
  50. data/lib/cadenya/version.rb +1 -1
  51. data/lib/cadenya.rb +29 -1
  52. data/rbi/cadenya/client.rbi +16 -0
  53. data/rbi/cadenya/models/agent_spec.rbi +21 -4
  54. data/rbi/cadenya/models/agents/webhook_delivery_data.rbi +5 -0
  55. data/rbi/cadenya/models/agents/webhook_delivery_list_params.rbi +5 -0
  56. data/rbi/cadenya/models/ai_provider_key.rbi +51 -0
  57. data/rbi/cadenya/models/ai_provider_key_create_params.rbi +65 -0
  58. data/rbi/cadenya/models/ai_provider_key_delete_params.rbi +43 -0
  59. data/rbi/cadenya/models/ai_provider_key_list_params.rbi +96 -0
  60. data/rbi/cadenya/models/ai_provider_key_retrieve_params.rbi +46 -0
  61. data/rbi/cadenya/models/ai_provider_key_spec.rbi +56 -0
  62. data/rbi/cadenya/models/ai_provider_key_update_params.rbi +82 -0
  63. data/rbi/cadenya/models/approval_requirement_filter.rbi +45 -0
  64. data/rbi/cadenya/models/attribute_filter.rbi +84 -0
  65. data/rbi/cadenya/models/objective_data.rbi +26 -0
  66. data/rbi/cadenya/models/objective_event_data.rbi +52 -0
  67. data/rbi/cadenya/models/objective_list_params.rbi +7 -2
  68. data/rbi/cadenya/models/objective_status.rbi +4 -2
  69. data/rbi/cadenya/models/profile_spec.rbi +5 -0
  70. data/rbi/cadenya/models/string_matcher.rbi +84 -0
  71. data/rbi/cadenya/models/tool_filter.rbi +66 -0
  72. data/rbi/cadenya/models/tool_set_adapter.rbi +14 -3
  73. data/rbi/cadenya/models/tool_set_adapter_mcp.rbi +16 -62
  74. data/rbi/cadenya/models/tool_set_adapter_openapi.rbi +127 -0
  75. data/rbi/cadenya/models/tool_set_get_openapi_spec_params.rbi +46 -0
  76. data/rbi/cadenya/models/tool_set_get_openapi_spec_response.rbi +33 -0
  77. data/rbi/cadenya/models/tool_sets/config_openapi.rbi +48 -0
  78. data/rbi/cadenya/models/tool_sets/tool_spec_config.rbi +11 -3
  79. data/rbi/cadenya/models/workspace.rbi +39 -3
  80. data/rbi/cadenya/models/workspace_admin/member_add_params.rbi +68 -0
  81. data/rbi/cadenya/models/workspace_admin/member_list_params.rbi +68 -0
  82. data/rbi/cadenya/models/workspace_admin/member_remove_params.rbi +48 -0
  83. data/rbi/cadenya/models/workspace_admin/profile_list_params.rbi +75 -0
  84. data/rbi/cadenya/models/workspace_admin_archive_params.rbi +38 -0
  85. data/rbi/cadenya/models/workspace_admin_create_params.rbi +127 -0
  86. data/rbi/cadenya/models/workspace_admin_list_params.rbi +70 -0
  87. data/rbi/cadenya/models/workspace_admin_retrieve_params.rbi +38 -0
  88. data/rbi/cadenya/models/workspace_admin_update_params.rbi +144 -0
  89. data/rbi/cadenya/models/workspace_member.rbi +80 -0
  90. data/rbi/cadenya/models.rbi +40 -2
  91. data/rbi/cadenya/resources/ai_provider_keys.rbi +125 -0
  92. data/rbi/cadenya/resources/tool_sets.rbi +18 -0
  93. data/rbi/cadenya/resources/workspace_admin/members.rbi +83 -0
  94. data/rbi/cadenya/resources/workspace_admin/profiles.rbi +42 -0
  95. data/rbi/cadenya/resources/workspace_admin.rbi +131 -0
  96. data/rbi/cadenya/resources/workspaces.rbi +4 -0
  97. data/sig/cadenya/client.rbs +4 -0
  98. data/sig/cadenya/models/agent_spec.rbs +12 -5
  99. data/sig/cadenya/models/agents/webhook_delivery_data.rbs +2 -0
  100. data/sig/cadenya/models/agents/webhook_delivery_list_params.rbs +2 -0
  101. data/sig/cadenya/models/ai_provider_key.rbs +22 -0
  102. data/sig/cadenya/models/ai_provider_key_create_params.rbs +36 -0
  103. data/sig/cadenya/models/ai_provider_key_delete_params.rbs +28 -0
  104. data/sig/cadenya/models/ai_provider_key_list_params.rbs +61 -0
  105. data/sig/cadenya/models/ai_provider_key_retrieve_params.rbs +28 -0
  106. data/sig/cadenya/models/ai_provider_key_spec.rbs +28 -0
  107. data/sig/cadenya/models/ai_provider_key_update_params.rbs +54 -0
  108. data/sig/cadenya/models/approval_requirement_filter.rbs +20 -0
  109. data/sig/cadenya/models/attribute_filter.rbs +44 -0
  110. data/sig/cadenya/models/objective_data.rbs +14 -0
  111. data/sig/cadenya/models/objective_event_data.rbs +21 -0
  112. data/sig/cadenya/models/objective_list_params.rbs +4 -2
  113. data/sig/cadenya/models/objective_status.rbs +4 -2
  114. data/sig/cadenya/models/profile_spec.rbs +5 -1
  115. data/sig/cadenya/models/string_matcher.rbs +57 -0
  116. data/sig/cadenya/models/tool_filter.rbs +41 -0
  117. data/sig/cadenya/models/tool_set_adapter.rbs +15 -3
  118. data/sig/cadenya/models/tool_set_adapter_mcp.rbs +16 -32
  119. data/sig/cadenya/models/tool_set_adapter_openapi.rbs +73 -0
  120. data/sig/cadenya/models/tool_set_get_openapi_spec_params.rbs +28 -0
  121. data/sig/cadenya/models/tool_set_get_openapi_spec_response.rbs +15 -0
  122. data/sig/cadenya/models/tool_sets/config_openapi.rbs +30 -0
  123. data/sig/cadenya/models/tool_sets/tool_spec_config.rbs +12 -3
  124. data/sig/cadenya/models/workspace.rbs +24 -3
  125. data/sig/cadenya/models/workspace_admin/member_add_params.rbs +38 -0
  126. data/sig/cadenya/models/workspace_admin/member_list_params.rbs +38 -0
  127. data/sig/cadenya/models/workspace_admin/member_remove_params.rbs +30 -0
  128. data/sig/cadenya/models/workspace_admin/profile_list_params.rbs +40 -0
  129. data/sig/cadenya/models/workspace_admin_archive_params.rbs +23 -0
  130. data/sig/cadenya/models/workspace_admin_create_params.rbs +58 -0
  131. data/sig/cadenya/models/workspace_admin_list_params.rbs +38 -0
  132. data/sig/cadenya/models/workspace_admin_retrieve_params.rbs +23 -0
  133. data/sig/cadenya/models/workspace_admin_update_params.rbs +76 -0
  134. data/sig/cadenya/models/workspace_member.rbs +46 -0
  135. data/sig/cadenya/models.rbs +40 -2
  136. data/sig/cadenya/resources/ai_provider_keys.rbs +45 -0
  137. data/sig/cadenya/resources/tool_sets.rbs +6 -0
  138. data/sig/cadenya/resources/workspace_admin/members.rbs +29 -0
  139. data/sig/cadenya/resources/workspace_admin/profiles.rbs +16 -0
  140. data/sig/cadenya/resources/workspace_admin.rbs +42 -0
  141. metadata +89 -5
  142. data/lib/cadenya/models/mcp_tool_filter.rb +0 -111
  143. data/rbi/cadenya/models/mcp_tool_filter.rbi +0 -235
  144. data/sig/cadenya/models/mcp_tool_filter.rbs +0 -138
@@ -9,10 +9,10 @@ module Cadenya
9
9
  end
10
10
 
11
11
  # Top-level filter with simple boolean logic (no nesting)
12
- sig { returns(T.nilable(Cadenya::McpToolFilter)) }
12
+ sig { returns(T.nilable(Cadenya::ToolFilter)) }
13
13
  attr_reader :exclude_tools
14
14
 
15
- sig { params(exclude_tools: Cadenya::McpToolFilter::OrHash).void }
15
+ sig { params(exclude_tools: Cadenya::ToolFilter::OrHash).void }
16
16
  attr_writer :exclude_tools
17
17
 
18
18
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
@@ -22,21 +22,19 @@ module Cadenya
22
22
  attr_writer :headers
23
23
 
24
24
  # Top-level filter with simple boolean logic (no nesting)
25
- sig { returns(T.nilable(Cadenya::McpToolFilter)) }
25
+ sig { returns(T.nilable(Cadenya::ToolFilter)) }
26
26
  attr_reader :include_tools
27
27
 
28
- sig { params(include_tools: Cadenya::McpToolFilter::OrHash).void }
28
+ sig { params(include_tools: Cadenya::ToolFilter::OrHash).void }
29
29
  attr_writer :include_tools
30
30
 
31
- # Approval filters that will automatically set the approval requirement on the
32
- # tools synced from the MCP server
33
- sig { returns(T.nilable(Cadenya::ToolSetAdapterMcp::ToolApprovals)) }
31
+ # Approval filters that will automatically set the approval requirement on tools
32
+ # synced from an external source
33
+ sig { returns(T.nilable(Cadenya::ApprovalRequirementFilter)) }
34
34
  attr_reader :tool_approvals
35
35
 
36
36
  sig do
37
- params(
38
- tool_approvals: Cadenya::ToolSetAdapterMcp::ToolApprovals::OrHash
39
- ).void
37
+ params(tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash).void
40
38
  end
41
39
  attr_writer :tool_approvals
42
40
 
@@ -48,10 +46,10 @@ module Cadenya
48
46
 
49
47
  sig do
50
48
  params(
51
- exclude_tools: Cadenya::McpToolFilter::OrHash,
49
+ exclude_tools: Cadenya::ToolFilter::OrHash,
52
50
  headers: T::Hash[Symbol, String],
53
- include_tools: Cadenya::McpToolFilter::OrHash,
54
- tool_approvals: Cadenya::ToolSetAdapterMcp::ToolApprovals::OrHash,
51
+ include_tools: Cadenya::ToolFilter::OrHash,
52
+ tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash,
55
53
  url: String
56
54
  ).returns(T.attached_class)
57
55
  end
@@ -61,8 +59,8 @@ module Cadenya
61
59
  headers: nil,
62
60
  # Top-level filter with simple boolean logic (no nesting)
63
61
  include_tools: nil,
64
- # Approval filters that will automatically set the approval requirement on the
65
- # tools synced from the MCP server
62
+ # Approval filters that will automatically set the approval requirement on tools
63
+ # synced from an external source
66
64
  tool_approvals: nil,
67
65
  url: nil
68
66
  )
@@ -71,60 +69,16 @@ module Cadenya
71
69
  sig do
72
70
  override.returns(
73
71
  {
74
- exclude_tools: Cadenya::McpToolFilter,
72
+ exclude_tools: Cadenya::ToolFilter,
75
73
  headers: T::Hash[Symbol, String],
76
- include_tools: Cadenya::McpToolFilter,
77
- tool_approvals: Cadenya::ToolSetAdapterMcp::ToolApprovals,
74
+ include_tools: Cadenya::ToolFilter,
75
+ tool_approvals: Cadenya::ApprovalRequirementFilter,
78
76
  url: String
79
77
  }
80
78
  )
81
79
  end
82
80
  def to_hash
83
81
  end
84
-
85
- class ToolApprovals < Cadenya::Internal::Type::BaseModel
86
- OrHash =
87
- T.type_alias do
88
- T.any(
89
- Cadenya::ToolSetAdapterMcp::ToolApprovals,
90
- Cadenya::Internal::AnyHash
91
- )
92
- end
93
-
94
- sig { returns(T.nilable(T::Boolean)) }
95
- attr_reader :always
96
-
97
- sig { params(always: T::Boolean).void }
98
- attr_writer :always
99
-
100
- # Top-level filter with simple boolean logic (no nesting)
101
- sig { returns(T.nilable(Cadenya::McpToolFilter)) }
102
- attr_reader :only
103
-
104
- sig { params(only: Cadenya::McpToolFilter::OrHash).void }
105
- attr_writer :only
106
-
107
- # Approval filters that will automatically set the approval requirement on the
108
- # tools synced from the MCP server
109
- sig do
110
- params(
111
- always: T::Boolean,
112
- only: Cadenya::McpToolFilter::OrHash
113
- ).returns(T.attached_class)
114
- end
115
- def self.new(
116
- always: nil,
117
- # Top-level filter with simple boolean logic (no nesting)
118
- only: nil
119
- )
120
- end
121
-
122
- sig do
123
- override.returns({ always: T::Boolean, only: Cadenya::McpToolFilter })
124
- end
125
- def to_hash
126
- end
127
- end
128
82
  end
129
83
  end
130
84
  end
@@ -0,0 +1,127 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ToolSetAdapterOpenAPI < Cadenya::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Cadenya::ToolSetAdapterOpenAPI, Cadenya::Internal::AnyHash)
9
+ end
10
+
11
+ # Base URL for dispatching tool calls. If set, overrides the server resolved from
12
+ # the spec's servers array.
13
+ sig { returns(T.nilable(String)) }
14
+ attr_reader :base_url
15
+
16
+ sig { params(base_url: String).void }
17
+ attr_writer :base_url
18
+
19
+ # Top-level filter with simple boolean logic (no nesting)
20
+ sig { returns(T.nilable(Cadenya::ToolFilter)) }
21
+ attr_reader :exclude_tools
22
+
23
+ sig { params(exclude_tools: Cadenya::ToolFilter::OrHash).void }
24
+ attr_writer :exclude_tools
25
+
26
+ # Headers sent when fetching the spec from a URL and when dispatching tool calls.
27
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
28
+ attr_reader :headers
29
+
30
+ sig { params(headers: T::Hash[Symbol, String]).void }
31
+ attr_writer :headers
32
+
33
+ # Top-level filter with simple boolean logic (no nesting)
34
+ sig { returns(T.nilable(Cadenya::ToolFilter)) }
35
+ attr_reader :include_tools
36
+
37
+ sig { params(include_tools: Cadenya::ToolFilter::OrHash).void }
38
+ attr_writer :include_tools
39
+
40
+ # Name of the server entry in the spec's servers array (OpenAPI 3.2 server.name
41
+ # field). Used to select which server URL to dispatch to when base_url is not set.
42
+ # If unset, the first server is used. Ignored when base_url is set.
43
+ sig { returns(T.nilable(String)) }
44
+ attr_reader :server_name
45
+
46
+ sig { params(server_name: String).void }
47
+ attr_writer :server_name
48
+
49
+ # Approval filters that will automatically set the approval requirement on tools
50
+ # synced from an external source
51
+ sig { returns(T.nilable(Cadenya::ApprovalRequirementFilter)) }
52
+ attr_reader :tool_approvals
53
+
54
+ sig do
55
+ params(tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash).void
56
+ end
57
+ attr_writer :tool_approvals
58
+
59
+ # ID of a COMPLETE Upload containing the OpenAPI spec document.
60
+ sig { returns(T.nilable(String)) }
61
+ attr_reader :upload_id
62
+
63
+ sig { params(upload_id: String).void }
64
+ attr_writer :upload_id
65
+
66
+ # URL to fetch the OpenAPI spec from. Synced automatically every hour.
67
+ sig { returns(T.nilable(String)) }
68
+ attr_reader :url
69
+
70
+ sig { params(url: String).void }
71
+ attr_writer :url
72
+
73
+ sig do
74
+ params(
75
+ base_url: String,
76
+ exclude_tools: Cadenya::ToolFilter::OrHash,
77
+ headers: T::Hash[Symbol, String],
78
+ include_tools: Cadenya::ToolFilter::OrHash,
79
+ server_name: String,
80
+ tool_approvals: Cadenya::ApprovalRequirementFilter::OrHash,
81
+ upload_id: String,
82
+ url: String
83
+ ).returns(T.attached_class)
84
+ end
85
+ def self.new(
86
+ # Base URL for dispatching tool calls. If set, overrides the server resolved from
87
+ # the spec's servers array.
88
+ base_url: nil,
89
+ # Top-level filter with simple boolean logic (no nesting)
90
+ exclude_tools: nil,
91
+ # Headers sent when fetching the spec from a URL and when dispatching tool calls.
92
+ headers: nil,
93
+ # Top-level filter with simple boolean logic (no nesting)
94
+ include_tools: nil,
95
+ # Name of the server entry in the spec's servers array (OpenAPI 3.2 server.name
96
+ # field). Used to select which server URL to dispatch to when base_url is not set.
97
+ # If unset, the first server is used. Ignored when base_url is set.
98
+ server_name: nil,
99
+ # Approval filters that will automatically set the approval requirement on tools
100
+ # synced from an external source
101
+ tool_approvals: nil,
102
+ # ID of a COMPLETE Upload containing the OpenAPI spec document.
103
+ upload_id: nil,
104
+ # URL to fetch the OpenAPI spec from. Synced automatically every hour.
105
+ url: nil
106
+ )
107
+ end
108
+
109
+ sig do
110
+ override.returns(
111
+ {
112
+ base_url: String,
113
+ exclude_tools: Cadenya::ToolFilter,
114
+ headers: T::Hash[Symbol, String],
115
+ include_tools: Cadenya::ToolFilter,
116
+ server_name: String,
117
+ tool_approvals: Cadenya::ApprovalRequirementFilter,
118
+ upload_id: String,
119
+ url: String
120
+ }
121
+ )
122
+ end
123
+ def to_hash
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ToolSetGetOpenAPISpecParams < Cadenya::Internal::Type::BaseModel
6
+ extend Cadenya::Internal::Type::RequestParameters::Converter
7
+ include Cadenya::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Cadenya::ToolSetGetOpenAPISpecParams,
13
+ Cadenya::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :workspace_id
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :tool_set_id
22
+
23
+ sig do
24
+ params(
25
+ workspace_id: String,
26
+ tool_set_id: String,
27
+ request_options: Cadenya::RequestOptions::OrHash
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(workspace_id:, tool_set_id:, request_options: {})
31
+ end
32
+
33
+ sig do
34
+ override.returns(
35
+ {
36
+ workspace_id: String,
37
+ tool_set_id: String,
38
+ request_options: Cadenya::RequestOptions
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ToolSetGetOpenAPISpecResponse < Cadenya::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Cadenya::Models::ToolSetGetOpenAPISpecResponse,
10
+ Cadenya::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The consumed OpenAPI specification as a JSON string.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :spec
17
+
18
+ sig { params(spec: String).void }
19
+ attr_writer :spec
20
+
21
+ sig { params(spec: String).returns(T.attached_class) }
22
+ def self.new(
23
+ # The consumed OpenAPI specification as a JSON string.
24
+ spec: nil
25
+ )
26
+ end
27
+
28
+ sig { override.returns({ spec: String }) }
29
+ def to_hash
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ module ToolSets
6
+ class ConfigOpenAPI < Cadenya::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Cadenya::ToolSets::ConfigOpenAPI, Cadenya::Internal::AnyHash)
10
+ end
11
+
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :method_
14
+
15
+ sig { params(method_: String).void }
16
+ attr_writer :method_
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :operation_id
20
+
21
+ sig { params(operation_id: String).void }
22
+ attr_writer :operation_id
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :path
26
+
27
+ sig { params(path: String).void }
28
+ attr_writer :path
29
+
30
+ sig do
31
+ params(method_: String, operation_id: String, path: String).returns(
32
+ T.attached_class
33
+ )
34
+ end
35
+ def self.new(method_: nil, operation_id: nil, path: nil)
36
+ end
37
+
38
+ sig do
39
+ override.returns(
40
+ { method_: String, operation_id: String, path: String }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -21,23 +21,31 @@ module Cadenya
21
21
  sig { params(mcp: Cadenya::ToolSets::ConfigMcp::OrHash).void }
22
22
  attr_writer :mcp
23
23
 
24
+ sig { returns(T.nilable(Cadenya::ToolSets::ConfigOpenAPI)) }
25
+ attr_reader :openapi
26
+
27
+ sig { params(openapi: Cadenya::ToolSets::ConfigOpenAPI::OrHash).void }
28
+ attr_writer :openapi
29
+
24
30
  # Config defines the adapter to use for the tool. This is used to determine how
25
31
  # the tool is called. For example, if the tool is an HTTP tool, the adapter will
26
32
  # be Http. If the tool is an inline tool, the adapter will be Inline.
27
33
  sig do
28
34
  params(
29
35
  http: Cadenya::ToolSets::ConfigHTTP::OrHash,
30
- mcp: Cadenya::ToolSets::ConfigMcp::OrHash
36
+ mcp: Cadenya::ToolSets::ConfigMcp::OrHash,
37
+ openapi: Cadenya::ToolSets::ConfigOpenAPI::OrHash
31
38
  ).returns(T.attached_class)
32
39
  end
33
- def self.new(http: nil, mcp: nil)
40
+ def self.new(http: nil, mcp: nil, openapi: nil)
34
41
  end
35
42
 
36
43
  sig do
37
44
  override.returns(
38
45
  {
39
46
  http: Cadenya::ToolSets::ConfigHTTP,
40
- mcp: Cadenya::ToolSets::ConfigMcp
47
+ mcp: Cadenya::ToolSets::ConfigMcp,
48
+ openapi: Cadenya::ToolSets::ConfigOpenAPI
41
49
  }
42
50
  )
43
51
  end
@@ -20,17 +20,29 @@ module Cadenya
20
20
  sig { params(spec: Cadenya::WorkspaceSpec::OrHash).void }
21
21
  attr_writer :spec
22
22
 
23
+ # Lifecycle status of the workspace. Archived workspaces reject all requests
24
+ # scoped to them. Server-populated.
25
+ sig { returns(T.nilable(Cadenya::Workspace::Status::TaggedSymbol)) }
26
+ attr_reader :status
27
+
28
+ sig { params(status: Cadenya::Workspace::Status::OrSymbol).void }
29
+ attr_writer :status
30
+
23
31
  sig do
24
32
  params(
25
33
  metadata: Cadenya::AccountResourceMetadata::OrHash,
26
- spec: Cadenya::WorkspaceSpec::OrHash
34
+ spec: Cadenya::WorkspaceSpec::OrHash,
35
+ status: Cadenya::Workspace::Status::OrSymbol
27
36
  ).returns(T.attached_class)
28
37
  end
29
38
  def self.new(
30
39
  # AccountResourceMetadata is used to represent a resource that is associated to an
31
40
  # account but not to a workspace.
32
41
  metadata:,
33
- spec:
42
+ spec:,
43
+ # Lifecycle status of the workspace. Archived workspaces reject all requests
44
+ # scoped to them. Server-populated.
45
+ status: nil
34
46
  )
35
47
  end
36
48
 
@@ -38,12 +50,36 @@ module Cadenya
38
50
  override.returns(
39
51
  {
40
52
  metadata: Cadenya::AccountResourceMetadata,
41
- spec: Cadenya::WorkspaceSpec
53
+ spec: Cadenya::WorkspaceSpec,
54
+ status: Cadenya::Workspace::Status::TaggedSymbol
42
55
  }
43
56
  )
44
57
  end
45
58
  def to_hash
46
59
  end
60
+
61
+ # Lifecycle status of the workspace. Archived workspaces reject all requests
62
+ # scoped to them. Server-populated.
63
+ module Status
64
+ extend Cadenya::Internal::Type::Enum
65
+
66
+ TaggedSymbol =
67
+ T.type_alias { T.all(Symbol, Cadenya::Workspace::Status) }
68
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
69
+
70
+ STATUS_ENABLED =
71
+ T.let(:STATUS_ENABLED, Cadenya::Workspace::Status::TaggedSymbol)
72
+ STATUS_DISABLED =
73
+ T.let(:STATUS_DISABLED, Cadenya::Workspace::Status::TaggedSymbol)
74
+ STATUS_ARCHIVED =
75
+ T.let(:STATUS_ARCHIVED, Cadenya::Workspace::Status::TaggedSymbol)
76
+
77
+ sig do
78
+ override.returns(T::Array[Cadenya::Workspace::Status::TaggedSymbol])
79
+ end
80
+ def self.values
81
+ end
82
+ end
47
83
  end
48
84
  end
49
85
  end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ module WorkspaceAdmin
6
+ class MemberAddParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Cadenya::WorkspaceAdmin::MemberAddParams,
14
+ Cadenya::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :workspace_id
20
+
21
+ # Email address to add (resolve-or-invite). Mutually exclusive with profile_id.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :email
24
+
25
+ sig { params(email: String).void }
26
+ attr_writer :email
27
+
28
+ # An existing account profile to add. Mutually exclusive with email.
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :profile_id
31
+
32
+ sig { params(profile_id: String).void }
33
+ attr_writer :profile_id
34
+
35
+ sig do
36
+ params(
37
+ workspace_id: String,
38
+ email: String,
39
+ profile_id: String,
40
+ request_options: Cadenya::RequestOptions::OrHash
41
+ ).returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ workspace_id:,
45
+ # Email address to add (resolve-or-invite). Mutually exclusive with profile_id.
46
+ email: nil,
47
+ # An existing account profile to add. Mutually exclusive with email.
48
+ profile_id: nil,
49
+ request_options: {}
50
+ )
51
+ end
52
+
53
+ sig do
54
+ override.returns(
55
+ {
56
+ workspace_id: String,
57
+ email: String,
58
+ profile_id: String,
59
+ request_options: Cadenya::RequestOptions
60
+ }
61
+ )
62
+ end
63
+ def to_hash
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ module WorkspaceAdmin
6
+ class MemberListParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Cadenya::WorkspaceAdmin::MemberListParams,
14
+ Cadenya::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :workspace_id
20
+
21
+ # Pagination cursor from previous response
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :cursor
24
+
25
+ sig { params(cursor: String).void }
26
+ attr_writer :cursor
27
+
28
+ # Maximum number of results to return
29
+ sig { returns(T.nilable(Integer)) }
30
+ attr_reader :limit
31
+
32
+ sig { params(limit: Integer).void }
33
+ attr_writer :limit
34
+
35
+ sig do
36
+ params(
37
+ workspace_id: String,
38
+ cursor: String,
39
+ limit: Integer,
40
+ request_options: Cadenya::RequestOptions::OrHash
41
+ ).returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ workspace_id:,
45
+ # Pagination cursor from previous response
46
+ cursor: nil,
47
+ # Maximum number of results to return
48
+ limit: nil,
49
+ request_options: {}
50
+ )
51
+ end
52
+
53
+ sig do
54
+ override.returns(
55
+ {
56
+ workspace_id: String,
57
+ cursor: String,
58
+ limit: Integer,
59
+ request_options: Cadenya::RequestOptions
60
+ }
61
+ )
62
+ end
63
+ def to_hash
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ module WorkspaceAdmin
6
+ class MemberRemoveParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Cadenya::WorkspaceAdmin::MemberRemoveParams,
14
+ Cadenya::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :workspace_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :profile_id
23
+
24
+ sig do
25
+ params(
26
+ workspace_id: String,
27
+ profile_id: String,
28
+ request_options: Cadenya::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(workspace_id:, profile_id:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ workspace_id: String,
38
+ profile_id: String,
39
+ request_options: Cadenya::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end