openlayer 0.16.0 → 0.17.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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  4. data/lib/openlayer/models/background_task_retrieve_response.rb +4 -0
  5. data/lib/openlayer/models/governance/framework_create_response.rb +7 -2
  6. data/lib/openlayer/models/governance/framework_export_params.rb +7 -2
  7. data/lib/openlayer/models/governance/framework_list_project_rule_stats_response.rb +2 -0
  8. data/lib/openlayer/models/governance/framework_list_response.rb +7 -2
  9. data/lib/openlayer/models/governance/framework_list_rules_response.rb +69 -29
  10. data/lib/openlayer/models/governance/framework_retrieve_response.rb +7 -2
  11. data/lib/openlayer/models/governance/framework_update_response.rb +7 -2
  12. data/lib/openlayer/models/governance/frameworks/document_list_response.rb +54 -28
  13. data/lib/openlayer/models/governance/frameworks/document_retrieve_response.rb +54 -28
  14. data/lib/openlayer/models/governance/frameworks/section_list_rules_response.rb +69 -29
  15. data/lib/openlayer/models/governance/frameworks/subsection_list_rules_response.rb +69 -29
  16. data/lib/openlayer/models/governance/rule_create_params.rb +21 -12
  17. data/lib/openlayer/models/governance/rule_create_response.rb +68 -29
  18. data/lib/openlayer/models/governance/rule_list_response.rb +69 -29
  19. data/lib/openlayer/models/governance/rule_result_create_evidence_params.rb +2 -1
  20. data/lib/openlayer/models/governance/rule_result_create_evidence_response.rb +6 -1
  21. data/lib/openlayer/models/governance/rule_result_list_evidence_response.rb +6 -1
  22. data/lib/openlayer/models/governance/rule_result_list_response.rb +34 -13
  23. data/lib/openlayer/models/governance/rule_result_retrieve_response.rb +34 -13
  24. data/lib/openlayer/models/governance/rule_result_update_params.rb +26 -10
  25. data/lib/openlayer/models/governance/rule_result_update_response.rb +34 -13
  26. data/lib/openlayer/models/governance/rule_retrieve_response.rb +68 -29
  27. data/lib/openlayer/models/governance/rule_stat_retrieve_response.rb +4 -0
  28. data/lib/openlayer/models/governance/rule_tag_list_response.rb +5 -2
  29. data/lib/openlayer/models/governance/rule_update_params.rb +2 -1
  30. data/lib/openlayer/models/governance/rule_update_response.rb +68 -29
  31. data/lib/openlayer/models/inference_pipeline_retrieve_sessions_response.rb +3 -0
  32. data/lib/openlayer/models/inference_pipeline_retrieve_users_response.rb +3 -0
  33. data/lib/openlayer/models/storage/presigned_url_retrieve_params.rb +6 -2
  34. data/lib/openlayer/models/workspaces/api_key_create_params.rb +17 -1
  35. data/lib/openlayer/models/workspaces/api_key_create_response.rb +73 -3
  36. data/lib/openlayer/models/workspaces/api_key_delete_params.rb +28 -0
  37. data/lib/openlayer/models/workspaces/api_key_list_params.rb +22 -0
  38. data/lib/openlayer/models/workspaces/api_key_list_response.rb +134 -0
  39. data/lib/openlayer/models/workspaces/api_key_retrieve_params.rb +28 -0
  40. data/lib/openlayer/models/workspaces/api_key_retrieve_response.rb +131 -0
  41. data/lib/openlayer/models/workspaces/api_key_rotate_params.rb +56 -0
  42. data/lib/openlayer/models/workspaces/api_key_rotate_response.rb +131 -0
  43. data/lib/openlayer/models/workspaces/api_key_update_params.rb +38 -0
  44. data/lib/openlayer/models/workspaces/api_key_update_response.rb +131 -0
  45. data/lib/openlayer/resources/background_tasks.rb +1 -5
  46. data/lib/openlayer/resources/commits.rb +1 -1
  47. data/lib/openlayer/resources/governance/frameworks/documents.rb +1 -9
  48. data/lib/openlayer/resources/governance/frameworks/sections.rb +1 -5
  49. data/lib/openlayer/resources/governance/frameworks/subsections.rb +1 -5
  50. data/lib/openlayer/resources/governance/frameworks.rb +10 -62
  51. data/lib/openlayer/resources/governance/rule_results.rb +8 -33
  52. data/lib/openlayer/resources/governance/rule_stats.rb +1 -5
  53. data/lib/openlayer/resources/governance/rule_tags.rb +0 -4
  54. data/lib/openlayer/resources/governance/rules.rb +7 -38
  55. data/lib/openlayer/resources/inference_pipelines/rows.rb +4 -5
  56. data/lib/openlayer/resources/inference_pipelines.rb +5 -14
  57. data/lib/openlayer/resources/projects/tests.rb +3 -3
  58. data/lib/openlayer/resources/storage/presigned_url.rb +5 -11
  59. data/lib/openlayer/resources/tests.rb +1 -4
  60. data/lib/openlayer/resources/workspaces/api_keys.rb +146 -2
  61. data/lib/openlayer/resources/workspaces/invites.rb +1 -1
  62. data/lib/openlayer/resources/workspaces.rb +1 -1
  63. data/lib/openlayer/version.rb +1 -1
  64. data/lib/openlayer.rb +9 -0
  65. data/rbi/openlayer/models/background_task_retrieve_response.rbi +3 -0
  66. data/rbi/openlayer/models/governance/framework_create_response.rbi +7 -2
  67. data/rbi/openlayer/models/governance/framework_export_params.rbi +6 -2
  68. data/rbi/openlayer/models/governance/framework_list_project_rule_stats_response.rbi +1 -0
  69. data/rbi/openlayer/models/governance/framework_list_response.rbi +7 -2
  70. data/rbi/openlayer/models/governance/framework_list_rules_response.rbi +70 -34
  71. data/rbi/openlayer/models/governance/framework_retrieve_response.rbi +7 -2
  72. data/rbi/openlayer/models/governance/framework_update_response.rbi +7 -2
  73. data/rbi/openlayer/models/governance/frameworks/document_list_response.rbi +76 -38
  74. data/rbi/openlayer/models/governance/frameworks/document_retrieve_response.rbi +76 -38
  75. data/rbi/openlayer/models/governance/frameworks/section_list_rules_response.rbi +70 -34
  76. data/rbi/openlayer/models/governance/frameworks/subsection_list_rules_response.rbi +70 -34
  77. data/rbi/openlayer/models/governance/rule_create_params.rbi +32 -17
  78. data/rbi/openlayer/models/governance/rule_create_response.rbi +70 -34
  79. data/rbi/openlayer/models/governance/rule_list_response.rbi +70 -34
  80. data/rbi/openlayer/models/governance/rule_result_create_evidence_params.rbi +4 -2
  81. data/rbi/openlayer/models/governance/rule_result_create_evidence_response.rbi +7 -2
  82. data/rbi/openlayer/models/governance/rule_result_list_evidence_response.rbi +7 -2
  83. data/rbi/openlayer/models/governance/rule_result_list_response.rbi +26 -13
  84. data/rbi/openlayer/models/governance/rule_result_retrieve_response.rbi +26 -13
  85. data/rbi/openlayer/models/governance/rule_result_update_params.rbi +18 -10
  86. data/rbi/openlayer/models/governance/rule_result_update_response.rbi +26 -13
  87. data/rbi/openlayer/models/governance/rule_retrieve_response.rbi +70 -34
  88. data/rbi/openlayer/models/governance/rule_stat_retrieve_response.rbi +3 -0
  89. data/rbi/openlayer/models/governance/rule_tag_list_response.rbi +4 -2
  90. data/rbi/openlayer/models/governance/rule_update_params.rbi +4 -2
  91. data/rbi/openlayer/models/governance/rule_update_response.rbi +70 -34
  92. data/rbi/openlayer/models/inference_pipeline_retrieve_sessions_response.rbi +2 -0
  93. data/rbi/openlayer/models/inference_pipeline_retrieve_users_response.rbi +2 -0
  94. data/rbi/openlayer/models/storage/presigned_url_retrieve_params.rbi +4 -2
  95. data/rbi/openlayer/models/workspaces/api_key_create_params.rbi +18 -0
  96. data/rbi/openlayer/models/workspaces/api_key_create_response.rbi +117 -5
  97. data/rbi/openlayer/models/workspaces/api_key_delete_params.rbi +48 -0
  98. data/rbi/openlayer/models/workspaces/api_key_list_params.rbi +40 -0
  99. data/rbi/openlayer/models/workspaces/api_key_list_response.rbi +202 -0
  100. data/rbi/openlayer/models/workspaces/api_key_retrieve_params.rbi +48 -0
  101. data/rbi/openlayer/models/workspaces/api_key_retrieve_response.rbi +194 -0
  102. data/rbi/openlayer/models/workspaces/api_key_rotate_params.rbi +85 -0
  103. data/rbi/openlayer/models/workspaces/api_key_rotate_response.rbi +194 -0
  104. data/rbi/openlayer/models/workspaces/api_key_update_params.rbi +60 -0
  105. data/rbi/openlayer/models/workspaces/api_key_update_response.rbi +194 -0
  106. data/rbi/openlayer/resources/background_tasks.rbi +1 -5
  107. data/rbi/openlayer/resources/commits.rbi +1 -1
  108. data/rbi/openlayer/resources/governance/frameworks/documents.rbi +1 -9
  109. data/rbi/openlayer/resources/governance/frameworks/sections.rbi +1 -5
  110. data/rbi/openlayer/resources/governance/frameworks/subsections.rbi +1 -5
  111. data/rbi/openlayer/resources/governance/frameworks.rbi +10 -63
  112. data/rbi/openlayer/resources/governance/rule_results.rbi +9 -35
  113. data/rbi/openlayer/resources/governance/rule_stats.rbi +1 -5
  114. data/rbi/openlayer/resources/governance/rule_tags.rbi +0 -4
  115. data/rbi/openlayer/resources/governance/rules.rbi +20 -44
  116. data/rbi/openlayer/resources/inference_pipelines/rows.rbi +4 -5
  117. data/rbi/openlayer/resources/inference_pipelines.rbi +5 -14
  118. data/rbi/openlayer/resources/projects/tests.rbi +3 -3
  119. data/rbi/openlayer/resources/storage/presigned_url.rbi +4 -12
  120. data/rbi/openlayer/resources/tests.rbi +1 -4
  121. data/rbi/openlayer/resources/workspaces/api_keys.rbi +110 -1
  122. data/rbi/openlayer/resources/workspaces/invites.rbi +1 -1
  123. data/rbi/openlayer/resources/workspaces.rbi +1 -1
  124. data/sig/openlayer/models/workspaces/api_key_create_params.rbs +5 -1
  125. data/sig/openlayer/models/workspaces/api_key_create_response.rbs +42 -3
  126. data/sig/openlayer/models/workspaces/api_key_delete_params.rbs +30 -0
  127. data/sig/openlayer/models/workspaces/api_key_list_params.rbs +25 -0
  128. data/sig/openlayer/models/workspaces/api_key_list_response.rbs +91 -0
  129. data/sig/openlayer/models/workspaces/api_key_retrieve_params.rbs +30 -0
  130. data/sig/openlayer/models/workspaces/api_key_retrieve_response.rbs +86 -0
  131. data/sig/openlayer/models/workspaces/api_key_rotate_params.rbs +45 -0
  132. data/sig/openlayer/models/workspaces/api_key_rotate_response.rbs +86 -0
  133. data/sig/openlayer/models/workspaces/api_key_update_params.rbs +34 -0
  134. data/sig/openlayer/models/workspaces/api_key_update_response.rbs +86 -0
  135. data/sig/openlayer/resources/workspaces/api_keys.rbs +33 -0
  136. metadata +29 -2
@@ -0,0 +1,202 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Workspaces
6
+ class APIKeyListResponseItem < Openlayer::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Openlayer::Models::Workspaces::APIKeyListResponseItem,
11
+ Openlayer::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # When the key stops authenticating. `null` means the key never expires. Set when
16
+ # the key is created or rotated, and must be in the future. When the request is
17
+ # authenticated with an API key that expires, the result can't be later than that
18
+ # key's expiry. On create, omit it to inherit that expiry. On rotate, omit it to
19
+ # keep the current one. It can't be changed with an update; rotate the key
20
+ # instead.
21
+ sig { returns(T.nilable(Time)) }
22
+ attr_accessor :expires_at
23
+
24
+ # The API key name.
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :name
27
+
28
+ # The API key id.
29
+ sig { returns(String) }
30
+ attr_accessor :id
31
+
32
+ # The API key creation date.
33
+ sig { returns(Time) }
34
+ attr_accessor :date_created
35
+
36
+ # The API key last use date.
37
+ sig { returns(T.nilable(Time)) }
38
+ attr_accessor :date_last_used
39
+
40
+ # The API key last update date.
41
+ sig { returns(Time) }
42
+ attr_accessor :date_updated
43
+
44
+ # An obfuscated hint of the API key value. When a key is created or rotated this
45
+ # also holds the full secret, for backward compatibility; prefer `secret`.
46
+ sig { returns(String) }
47
+ attr_accessor :secure_key
48
+
49
+ # The key's lifecycle state. `active`: the current secret authenticates.
50
+ # `rotating`: the key was rotated and the previous secret still authenticates
51
+ # until `previousKeyExpiresAt`. `expired`: `expiresAt` has passed, no secret
52
+ # authenticates, and the key can't be rotated.
53
+ sig do
54
+ returns(
55
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status::TaggedSymbol
56
+ )
57
+ end
58
+ attr_accessor :status
59
+
60
+ # When the key was last rotated.
61
+ sig { returns(T.nilable(Time)) }
62
+ attr_accessor :last_rotated_at
63
+
64
+ # While `status` is `rotating`, when the previous secret stops authenticating.
65
+ sig { returns(T.nilable(Time)) }
66
+ attr_accessor :previous_key_expires_at
67
+
68
+ # The full API key. Only present in the response that creates or rotates the key,
69
+ # and never shown again.
70
+ sig { returns(T.nilable(String)) }
71
+ attr_reader :secret
72
+
73
+ sig { params(secret: String).void }
74
+ attr_writer :secret
75
+
76
+ sig do
77
+ params(
78
+ id: String,
79
+ date_created: Time,
80
+ date_last_used: T.nilable(Time),
81
+ date_updated: Time,
82
+ secure_key: String,
83
+ status:
84
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status::OrSymbol,
85
+ expires_at: T.nilable(Time),
86
+ last_rotated_at: T.nilable(Time),
87
+ name: T.nilable(String),
88
+ previous_key_expires_at: T.nilable(Time),
89
+ secret: String
90
+ ).returns(T.attached_class)
91
+ end
92
+ def self.new(
93
+ # The API key id.
94
+ id:,
95
+ # The API key creation date.
96
+ date_created:,
97
+ # The API key last use date.
98
+ date_last_used:,
99
+ # The API key last update date.
100
+ date_updated:,
101
+ # An obfuscated hint of the API key value. When a key is created or rotated this
102
+ # also holds the full secret, for backward compatibility; prefer `secret`.
103
+ secure_key:,
104
+ # The key's lifecycle state. `active`: the current secret authenticates.
105
+ # `rotating`: the key was rotated and the previous secret still authenticates
106
+ # until `previousKeyExpiresAt`. `expired`: `expiresAt` has passed, no secret
107
+ # authenticates, and the key can't be rotated.
108
+ status:,
109
+ # When the key stops authenticating. `null` means the key never expires. Set when
110
+ # the key is created or rotated, and must be in the future. When the request is
111
+ # authenticated with an API key that expires, the result can't be later than that
112
+ # key's expiry. On create, omit it to inherit that expiry. On rotate, omit it to
113
+ # keep the current one. It can't be changed with an update; rotate the key
114
+ # instead.
115
+ expires_at: nil,
116
+ # When the key was last rotated.
117
+ last_rotated_at: nil,
118
+ # The API key name.
119
+ name: nil,
120
+ # While `status` is `rotating`, when the previous secret stops authenticating.
121
+ previous_key_expires_at: nil,
122
+ # The full API key. Only present in the response that creates or rotates the key,
123
+ # and never shown again.
124
+ secret: nil
125
+ )
126
+ end
127
+
128
+ sig do
129
+ override.returns(
130
+ {
131
+ id: String,
132
+ date_created: Time,
133
+ date_last_used: T.nilable(Time),
134
+ date_updated: Time,
135
+ secure_key: String,
136
+ status:
137
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status::TaggedSymbol,
138
+ expires_at: T.nilable(Time),
139
+ last_rotated_at: T.nilable(Time),
140
+ name: T.nilable(String),
141
+ previous_key_expires_at: T.nilable(Time),
142
+ secret: String
143
+ }
144
+ )
145
+ end
146
+ def to_hash
147
+ end
148
+
149
+ # The key's lifecycle state. `active`: the current secret authenticates.
150
+ # `rotating`: the key was rotated and the previous secret still authenticates
151
+ # until `previousKeyExpiresAt`. `expired`: `expiresAt` has passed, no secret
152
+ # authenticates, and the key can't be rotated.
153
+ module Status
154
+ extend Openlayer::Internal::Type::Enum
155
+
156
+ TaggedSymbol =
157
+ T.type_alias do
158
+ T.all(
159
+ Symbol,
160
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status
161
+ )
162
+ end
163
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
164
+
165
+ ACTIVE =
166
+ T.let(
167
+ :active,
168
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status::TaggedSymbol
169
+ )
170
+ ROTATING =
171
+ T.let(
172
+ :rotating,
173
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status::TaggedSymbol
174
+ )
175
+ EXPIRED =
176
+ T.let(
177
+ :expired,
178
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status::TaggedSymbol
179
+ )
180
+
181
+ sig do
182
+ override.returns(
183
+ T::Array[
184
+ Openlayer::Models::Workspaces::APIKeyListResponseItem::Status::TaggedSymbol
185
+ ]
186
+ )
187
+ end
188
+ def self.values
189
+ end
190
+ end
191
+ end
192
+
193
+ APIKeyListResponse =
194
+ T.let(
195
+ Openlayer::Internal::Type::ArrayOf[
196
+ Openlayer::Models::Workspaces::APIKeyListResponseItem
197
+ ],
198
+ Openlayer::Internal::Type::Converter
199
+ )
200
+ end
201
+ end
202
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Workspaces
6
+ class APIKeyRetrieveParams < Openlayer::Internal::Type::BaseModel
7
+ extend Openlayer::Internal::Type::RequestParameters::Converter
8
+ include Openlayer::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Openlayer::Workspaces::APIKeyRetrieveParams,
14
+ Openlayer::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :workspace_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :api_key_id
23
+
24
+ sig do
25
+ params(
26
+ workspace_id: String,
27
+ api_key_id: String,
28
+ request_options: Openlayer::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(workspace_id:, api_key_id:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ workspace_id: String,
38
+ api_key_id: String,
39
+ request_options: Openlayer::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,194 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Workspaces
6
+ class APIKeyRetrieveResponse < Openlayer::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse,
11
+ Openlayer::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # When the key stops authenticating. `null` means the key never expires. Set when
16
+ # the key is created or rotated, and must be in the future. When the request is
17
+ # authenticated with an API key that expires, the result can't be later than that
18
+ # key's expiry. On create, omit it to inherit that expiry. On rotate, omit it to
19
+ # keep the current one. It can't be changed with an update; rotate the key
20
+ # instead.
21
+ sig { returns(T.nilable(Time)) }
22
+ attr_accessor :expires_at
23
+
24
+ # The API key name.
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :name
27
+
28
+ # The API key id.
29
+ sig { returns(String) }
30
+ attr_accessor :id
31
+
32
+ # The API key creation date.
33
+ sig { returns(Time) }
34
+ attr_accessor :date_created
35
+
36
+ # The API key last use date.
37
+ sig { returns(T.nilable(Time)) }
38
+ attr_accessor :date_last_used
39
+
40
+ # The API key last update date.
41
+ sig { returns(Time) }
42
+ attr_accessor :date_updated
43
+
44
+ # An obfuscated hint of the API key value. When a key is created or rotated this
45
+ # also holds the full secret, for backward compatibility; prefer `secret`.
46
+ sig { returns(String) }
47
+ attr_accessor :secure_key
48
+
49
+ # The key's lifecycle state. `active`: the current secret authenticates.
50
+ # `rotating`: the key was rotated and the previous secret still authenticates
51
+ # until `previousKeyExpiresAt`. `expired`: `expiresAt` has passed, no secret
52
+ # authenticates, and the key can't be rotated.
53
+ sig do
54
+ returns(
55
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status::TaggedSymbol
56
+ )
57
+ end
58
+ attr_accessor :status
59
+
60
+ # When the key was last rotated.
61
+ sig { returns(T.nilable(Time)) }
62
+ attr_accessor :last_rotated_at
63
+
64
+ # While `status` is `rotating`, when the previous secret stops authenticating.
65
+ sig { returns(T.nilable(Time)) }
66
+ attr_accessor :previous_key_expires_at
67
+
68
+ # The full API key. Only present in the response that creates or rotates the key,
69
+ # and never shown again.
70
+ sig { returns(T.nilable(String)) }
71
+ attr_reader :secret
72
+
73
+ sig { params(secret: String).void }
74
+ attr_writer :secret
75
+
76
+ sig do
77
+ params(
78
+ id: String,
79
+ date_created: Time,
80
+ date_last_used: T.nilable(Time),
81
+ date_updated: Time,
82
+ secure_key: String,
83
+ status:
84
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status::OrSymbol,
85
+ expires_at: T.nilable(Time),
86
+ last_rotated_at: T.nilable(Time),
87
+ name: T.nilable(String),
88
+ previous_key_expires_at: T.nilable(Time),
89
+ secret: String
90
+ ).returns(T.attached_class)
91
+ end
92
+ def self.new(
93
+ # The API key id.
94
+ id:,
95
+ # The API key creation date.
96
+ date_created:,
97
+ # The API key last use date.
98
+ date_last_used:,
99
+ # The API key last update date.
100
+ date_updated:,
101
+ # An obfuscated hint of the API key value. When a key is created or rotated this
102
+ # also holds the full secret, for backward compatibility; prefer `secret`.
103
+ secure_key:,
104
+ # The key's lifecycle state. `active`: the current secret authenticates.
105
+ # `rotating`: the key was rotated and the previous secret still authenticates
106
+ # until `previousKeyExpiresAt`. `expired`: `expiresAt` has passed, no secret
107
+ # authenticates, and the key can't be rotated.
108
+ status:,
109
+ # When the key stops authenticating. `null` means the key never expires. Set when
110
+ # the key is created or rotated, and must be in the future. When the request is
111
+ # authenticated with an API key that expires, the result can't be later than that
112
+ # key's expiry. On create, omit it to inherit that expiry. On rotate, omit it to
113
+ # keep the current one. It can't be changed with an update; rotate the key
114
+ # instead.
115
+ expires_at: nil,
116
+ # When the key was last rotated.
117
+ last_rotated_at: nil,
118
+ # The API key name.
119
+ name: nil,
120
+ # While `status` is `rotating`, when the previous secret stops authenticating.
121
+ previous_key_expires_at: nil,
122
+ # The full API key. Only present in the response that creates or rotates the key,
123
+ # and never shown again.
124
+ secret: nil
125
+ )
126
+ end
127
+
128
+ sig do
129
+ override.returns(
130
+ {
131
+ id: String,
132
+ date_created: Time,
133
+ date_last_used: T.nilable(Time),
134
+ date_updated: Time,
135
+ secure_key: String,
136
+ status:
137
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status::TaggedSymbol,
138
+ expires_at: T.nilable(Time),
139
+ last_rotated_at: T.nilable(Time),
140
+ name: T.nilable(String),
141
+ previous_key_expires_at: T.nilable(Time),
142
+ secret: String
143
+ }
144
+ )
145
+ end
146
+ def to_hash
147
+ end
148
+
149
+ # The key's lifecycle state. `active`: the current secret authenticates.
150
+ # `rotating`: the key was rotated and the previous secret still authenticates
151
+ # until `previousKeyExpiresAt`. `expired`: `expiresAt` has passed, no secret
152
+ # authenticates, and the key can't be rotated.
153
+ module Status
154
+ extend Openlayer::Internal::Type::Enum
155
+
156
+ TaggedSymbol =
157
+ T.type_alias do
158
+ T.all(
159
+ Symbol,
160
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status
161
+ )
162
+ end
163
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
164
+
165
+ ACTIVE =
166
+ T.let(
167
+ :active,
168
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status::TaggedSymbol
169
+ )
170
+ ROTATING =
171
+ T.let(
172
+ :rotating,
173
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status::TaggedSymbol
174
+ )
175
+ EXPIRED =
176
+ T.let(
177
+ :expired,
178
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status::TaggedSymbol
179
+ )
180
+
181
+ sig do
182
+ override.returns(
183
+ T::Array[
184
+ Openlayer::Models::Workspaces::APIKeyRetrieveResponse::Status::TaggedSymbol
185
+ ]
186
+ )
187
+ end
188
+ def self.values
189
+ end
190
+ end
191
+ end
192
+ end
193
+ end
194
+ end
@@ -0,0 +1,85 @@
1
+ # typed: strong
2
+
3
+ module Openlayer
4
+ module Models
5
+ module Workspaces
6
+ class APIKeyRotateParams < Openlayer::Internal::Type::BaseModel
7
+ extend Openlayer::Internal::Type::RequestParameters::Converter
8
+ include Openlayer::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Openlayer::Workspaces::APIKeyRotateParams,
14
+ Openlayer::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :workspace_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :api_key_id
23
+
24
+ # When the key stops authenticating. `null` means the key never expires. Set when
25
+ # the key is created or rotated, and must be in the future. When the request is
26
+ # authenticated with an API key that expires, the result can't be later than that
27
+ # key's expiry. On create, omit it to inherit that expiry. On rotate, omit it to
28
+ # keep the current one. It can't be changed with an update; rotate the key
29
+ # instead.
30
+ sig { returns(T.nilable(Time)) }
31
+ attr_accessor :expires_at
32
+
33
+ # Hours the previous secret keeps authenticating. The default of 0 retires it
34
+ # immediately. It never outlives `expiresAt`. Only one previous secret is kept, so
35
+ # rotating again during a grace period retires the older one immediately.
36
+ sig { returns(T.nilable(Integer)) }
37
+ attr_reader :grace_period_hours
38
+
39
+ sig { params(grace_period_hours: Integer).void }
40
+ attr_writer :grace_period_hours
41
+
42
+ sig do
43
+ params(
44
+ workspace_id: String,
45
+ api_key_id: String,
46
+ expires_at: T.nilable(Time),
47
+ grace_period_hours: Integer,
48
+ request_options: Openlayer::RequestOptions::OrHash
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ workspace_id:,
53
+ api_key_id:,
54
+ # When the key stops authenticating. `null` means the key never expires. Set when
55
+ # the key is created or rotated, and must be in the future. When the request is
56
+ # authenticated with an API key that expires, the result can't be later than that
57
+ # key's expiry. On create, omit it to inherit that expiry. On rotate, omit it to
58
+ # keep the current one. It can't be changed with an update; rotate the key
59
+ # instead.
60
+ expires_at: nil,
61
+ # Hours the previous secret keeps authenticating. The default of 0 retires it
62
+ # immediately. It never outlives `expiresAt`. Only one previous secret is kept, so
63
+ # rotating again during a grace period retires the older one immediately.
64
+ grace_period_hours: nil,
65
+ request_options: {}
66
+ )
67
+ end
68
+
69
+ sig do
70
+ override.returns(
71
+ {
72
+ workspace_id: String,
73
+ api_key_id: String,
74
+ expires_at: T.nilable(Time),
75
+ grace_period_hours: Integer,
76
+ request_options: Openlayer::RequestOptions
77
+ }
78
+ )
79
+ end
80
+ def to_hash
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end