anthropic 2.1.0 → 2.2.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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/anthropic/client.rb +8 -0
  5. data/lib/anthropic/helpers/bedrock/client.rb +5 -0
  6. data/lib/anthropic/helpers/bedrock/mantle_client.rb +5 -0
  7. data/lib/anthropic/helpers/stainless_helper_header.rb +1 -0
  8. data/lib/anthropic/helpers/threads/beta_message_thread.rb +635 -0
  9. data/lib/anthropic/helpers/tools/runner.rb +79 -11
  10. data/lib/anthropic/helpers/vertex/client.rb +5 -0
  11. data/lib/anthropic/internal/report_page_cursor.rb +2 -2
  12. data/lib/anthropic/internal/tracing.rb +2 -0
  13. data/lib/anthropic/models/anthropic_beta.rb +6 -0
  14. data/lib/anthropic/models/beta/beta_message_thread_param.rb +61 -0
  15. data/lib/anthropic/models/beta/beta_thread_continue_params.rb +29 -0
  16. data/lib/anthropic/models/beta/beta_thread_create_params.rb +21 -0
  17. data/lib/anthropic/models/beta/message_create_params.rb +13 -1
  18. data/lib/anthropic/models/beta/messages/batch_create_params.rb +13 -1
  19. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_group.rb +271 -0
  20. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_group_by.rb +40 -0
  21. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_item.rb +57 -0
  22. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_metrics.rb +57 -0
  23. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_cost_order_by.rb +22 -0
  24. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_group.rb +247 -0
  25. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_group_by.rb +38 -0
  26. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_item.rb +57 -0
  27. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_metrics.rb +79 -0
  28. data/lib/anthropic/models/beta/organization/analytics/beta_analytics_usage_order_by.rb +24 -0
  29. data/lib/anthropic/models/beta/organization/analytics/cost_list_params.rb +360 -0
  30. data/lib/anthropic/models/beta/organization/analytics/usage_list_params.rb +353 -0
  31. data/lib/anthropic/models/beta/organization/beta_analytics_actor.rb +81 -0
  32. data/lib/anthropic/models/beta/organization/beta_analytics_actor_type.rb +22 -0
  33. data/lib/anthropic/models/beta/organization/beta_analytics_api_actor.rb +27 -0
  34. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor.rb +42 -0
  35. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_aws_provider.rb +35 -0
  36. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_azure_provider.rb +27 -0
  37. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_gcp_provider.rb +27 -0
  38. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_oidc_provider.rb +27 -0
  39. data/lib/anthropic/models/beta/organization/beta_analytics_federated_actor_provider.rb +72 -0
  40. data/lib/anthropic/models/beta/organization/beta_analytics_grouped_cost_type.rb +21 -0
  41. data/lib/anthropic/models/beta/organization/beta_analytics_report_user_actor.rb +65 -0
  42. data/lib/anthropic/models/beta/organization/beta_analytics_service_account_actor.rb +27 -0
  43. data/lib/anthropic/models/beta/organization/beta_analytics_service_tier.rb +23 -0
  44. data/lib/anthropic/models/beta/organization/beta_analytics_speed.rb +19 -0
  45. data/lib/anthropic/models/beta/organization/beta_analytics_time_bucket_width.rb +20 -0
  46. data/lib/anthropic/models/beta/organization/beta_analytics_usage_cost_inference_geo.rb +19 -0
  47. data/lib/anthropic/models/beta/organization/beta_analytics_usage_cost_product_filter.rb +34 -0
  48. data/lib/anthropic/models/beta/organization/beta_analytics_usage_cost_sort_order.rb +19 -0
  49. data/lib/anthropic/models/beta/organization/beta_organization_rate_limit.rb +2 -1
  50. data/lib/anthropic/models/beta/organization/beta_plugin.rb +12 -6
  51. data/lib/anthropic/models/beta/organization/beta_plugin_content_scan.rb +11 -5
  52. data/lib/anthropic/models/beta/organization/workspaces/beta_workspace_rate_limit.rb +2 -1
  53. data/lib/anthropic/models/organization/organization_rate_limit.rb +2 -1
  54. data/lib/anthropic/models/organization/workspaces/workspace_rate_limit.rb +2 -1
  55. data/lib/anthropic/resources/beta/messages.rb +78 -4
  56. data/lib/anthropic/resources/beta/organization/analytics/cost.rb +175 -0
  57. data/lib/anthropic/resources/beta/organization/analytics/cost_report.rb +13 -6
  58. data/lib/anthropic/resources/beta/organization/analytics/usage.rb +176 -0
  59. data/lib/anthropic/resources/beta/organization/analytics/usage_report.rb +9 -2
  60. data/lib/anthropic/resources/beta/organization/analytics/user_cost_report.rb +12 -5
  61. data/lib/anthropic/resources/beta/organization/analytics/user_usage_report.rb +15 -8
  62. data/lib/anthropic/resources/beta/organization/analytics.rb +8 -0
  63. data/lib/anthropic/resources/beta/organization/plugin_marketplaces.rb +6 -6
  64. data/lib/anthropic/resources/beta/organization/plugins.rb +12 -9
  65. data/lib/anthropic/version.rb +1 -1
  66. data/lib/anthropic.rb +36 -0
  67. data/rbi/anthropic/client.rbi +5 -0
  68. data/rbi/anthropic/helpers/bedrock/client.rbi +5 -0
  69. data/rbi/anthropic/helpers/bedrock/mantle_client.rbi +5 -0
  70. data/rbi/anthropic/helpers/threads/beta_message_thread.rbi +100 -0
  71. data/rbi/anthropic/helpers/vertex/client.rbi +5 -0
  72. data/rbi/anthropic/internal/tracing.rbi +4 -0
  73. data/rbi/anthropic/models/anthropic_beta.rbi +10 -0
  74. data/rbi/anthropic/models/beta/beta_message_thread_param.rbi +80 -0
  75. data/rbi/anthropic/models/beta/beta_thread_continue_params.rbi +43 -0
  76. data/rbi/anthropic/models/beta/beta_thread_create_params.rbi +31 -0
  77. data/rbi/anthropic/models/beta/message_create_params.rbi +37 -0
  78. data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +37 -0
  79. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_group.rbi +439 -0
  80. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_group_by.rbi +140 -0
  81. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_item.rbi +110 -0
  82. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_metrics.rbi +79 -0
  83. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_cost_order_by.rbi +50 -0
  84. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_group.rbi +399 -0
  85. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_group_by.rbi +130 -0
  86. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_item.rbi +110 -0
  87. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_metrics.rbi +120 -0
  88. data/rbi/anthropic/models/beta/organization/analytics/beta_analytics_usage_order_by.rbi +60 -0
  89. data/rbi/anthropic/models/beta/organization/analytics/cost_list_params.rbi +624 -0
  90. data/rbi/anthropic/models/beta/organization/analytics/usage_list_params.rbi +612 -0
  91. data/rbi/anthropic/models/beta/organization/beta_analytics_actor.rbi +134 -0
  92. data/rbi/anthropic/models/beta/organization/beta_analytics_actor_type.rbi +54 -0
  93. data/rbi/anthropic/models/beta/organization/beta_analytics_api_actor.rbi +40 -0
  94. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor.rbi +75 -0
  95. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_aws_provider.rbi +54 -0
  96. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_azure_provider.rbi +42 -0
  97. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_gcp_provider.rbi +42 -0
  98. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_oidc_provider.rbi +42 -0
  99. data/rbi/anthropic/models/beta/organization/beta_analytics_federated_actor_provider.rbi +107 -0
  100. data/rbi/anthropic/models/beta/organization/beta_analytics_grouped_cost_type.rbi +53 -0
  101. data/rbi/anthropic/models/beta/organization/beta_analytics_report_user_actor.rbi +94 -0
  102. data/rbi/anthropic/models/beta/organization/beta_analytics_service_account_actor.rbi +42 -0
  103. data/rbi/anthropic/models/beta/organization/beta_analytics_service_tier.rbi +63 -0
  104. data/rbi/anthropic/models/beta/organization/beta_analytics_speed.rbi +40 -0
  105. data/rbi/anthropic/models/beta/organization/beta_analytics_time_bucket_width.rbi +48 -0
  106. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_cost_inference_geo.rbi +43 -0
  107. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_cost_product_filter.rbi +98 -0
  108. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_cost_sort_order.rbi +43 -0
  109. data/rbi/anthropic/models/beta/organization/beta_organization_rate_limit.rbi +4 -2
  110. data/rbi/anthropic/models/beta/organization/beta_plugin.rbi +20 -8
  111. data/rbi/anthropic/models/beta/organization/beta_plugin_content_scan.rbi +15 -6
  112. data/rbi/anthropic/models/beta/organization/workspaces/beta_workspace_rate_limit.rbi +4 -2
  113. data/rbi/anthropic/models/organization/organization_rate_limit.rbi +4 -2
  114. data/rbi/anthropic/models/organization/workspaces/workspace_rate_limit.rbi +4 -2
  115. data/rbi/anthropic/resources/beta/messages.rbi +191 -0
  116. data/rbi/anthropic/resources/beta/organization/analytics/cost.rbi +245 -0
  117. data/rbi/anthropic/resources/beta/organization/analytics/cost_report.rbi +12 -5
  118. data/rbi/anthropic/resources/beta/organization/analytics/usage.rbi +240 -0
  119. data/rbi/anthropic/resources/beta/organization/analytics/usage_report.rbi +9 -2
  120. data/rbi/anthropic/resources/beta/organization/analytics/user_cost_report.rbi +12 -5
  121. data/rbi/anthropic/resources/beta/organization/analytics/user_usage_report.rbi +14 -7
  122. data/rbi/anthropic/resources/beta/organization/analytics.rbi +10 -0
  123. data/rbi/anthropic/resources/beta/organization/plugin_marketplaces.rbi +6 -6
  124. data/rbi/anthropic/resources/beta/organization/plugins.rbi +12 -9
  125. data/rbi/lib/anthropic/helpers/stainless_helper_header.rbi +2 -0
  126. data/sig/anthropic/client.rbs +2 -0
  127. data/sig/anthropic/helpers/bedrock/client.rbs +2 -0
  128. data/sig/anthropic/helpers/threads/beta_message_thread.rbs +40 -0
  129. data/sig/anthropic/helpers/tools/runner.rbs +40 -0
  130. data/sig/anthropic/helpers/vertex/client.rbs +2 -0
  131. data/sig/anthropic/internal/tracing.rbs +2 -0
  132. data/sig/anthropic/models/anthropic_beta.rbs +4 -0
  133. data/sig/anthropic/models/beta/beta_message_thread_param.rbs +40 -0
  134. data/sig/anthropic/models/beta/beta_thread_continue_params.rbs +20 -0
  135. data/sig/anthropic/models/beta/beta_thread_create_params.rbs +17 -0
  136. data/sig/anthropic/models/beta/message_create_params.rbs +5 -0
  137. data/sig/anthropic/models/beta/messages/batch_create_params.rbs +5 -0
  138. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_group.rbs +126 -0
  139. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_group_by.rbs +60 -0
  140. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_item.rbs +41 -0
  141. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_metrics.rbs +41 -0
  142. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_cost_order_by.rbs +21 -0
  143. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_group.rbs +116 -0
  144. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_group_by.rbs +56 -0
  145. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_item.rbs +41 -0
  146. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_metrics.rbs +56 -0
  147. data/sig/anthropic/models/beta/organization/analytics/beta_analytics_usage_order_by.rbs +28 -0
  148. data/sig/anthropic/models/beta/organization/analytics/cost_list_params.rbs +188 -0
  149. data/sig/anthropic/models/beta/organization/analytics/usage_list_params.rbs +188 -0
  150. data/sig/anthropic/models/beta/organization/beta_analytics_actor.rbs +67 -0
  151. data/sig/anthropic/models/beta/organization/beta_analytics_actor_type.rbs +21 -0
  152. data/sig/anthropic/models/beta/organization/beta_analytics_api_actor.rbs +19 -0
  153. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor.rbs +34 -0
  154. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_aws_provider.rbs +30 -0
  155. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_azure_provider.rbs +20 -0
  156. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_gcp_provider.rbs +20 -0
  157. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_oidc_provider.rbs +20 -0
  158. data/sig/anthropic/models/beta/organization/beta_analytics_federated_actor_provider.rbs +60 -0
  159. data/sig/anthropic/models/beta/organization/beta_analytics_grouped_cost_type.rbs +21 -0
  160. data/sig/anthropic/models/beta/organization/beta_analytics_report_user_actor.rbs +44 -0
  161. data/sig/anthropic/models/beta/organization/beta_analytics_service_account_actor.rbs +26 -0
  162. data/sig/anthropic/models/beta/organization/beta_analytics_service_tier.rbs +28 -0
  163. data/sig/anthropic/models/beta/organization/beta_analytics_speed.rbs +18 -0
  164. data/sig/anthropic/models/beta/organization/beta_analytics_time_bucket_width.rbs +19 -0
  165. data/sig/anthropic/models/beta/organization/beta_analytics_usage_cost_inference_geo.rbs +18 -0
  166. data/sig/anthropic/models/beta/organization/beta_analytics_usage_cost_product_filter.rbs +40 -0
  167. data/sig/anthropic/models/beta/organization/beta_analytics_usage_cost_sort_order.rbs +18 -0
  168. data/sig/anthropic/resources/beta/messages.rbs +33 -0
  169. data/sig/anthropic/resources/beta/organization/analytics/cost.rbs +46 -0
  170. data/sig/anthropic/resources/beta/organization/analytics/usage.rbs +46 -0
  171. data/sig/anthropic/resources/beta/organization/analytics.rbs +4 -0
  172. metadata +111 -2
@@ -0,0 +1,188 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ module Analytics
6
+ type cost_list_params =
7
+ {
8
+ starting_at: Time,
9
+ actor_ids: ::Array[String]?,
10
+ actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?,
11
+ agent_ids: ::Array[String]?,
12
+ api_key_ids: ::Array[String]?,
13
+ claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?,
14
+ claude_tag_user_ids: ::Array[String]?,
15
+ context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?,
16
+ deployment_ids: ::Array[String]?,
17
+ ending_at: Time?,
18
+ environment_ids: ::Array[String]?,
19
+ exclude_deleted_users: bool,
20
+ group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_group_by]?,
21
+ inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?,
22
+ limit: Integer,
23
+ models: ::Array[String]?,
24
+ order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order,
25
+ order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_order_by,
26
+ page: String?,
27
+ products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?,
28
+ rbac_group_ids: ::Array[String]?,
29
+ service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?,
30
+ session_ids: ::Array[String]?,
31
+ slack_channel_ids: ::Array[String]?,
32
+ speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?,
33
+ time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?,
34
+ user_profile_ids: ::Array[String]?,
35
+ workspace_ids: ::Array[String]?,
36
+ betas: ::Array[Anthropic::Models::anthropic_beta]
37
+ }
38
+ & Anthropic::Internal::Type::request_parameters
39
+
40
+ class CostListParams < Anthropic::Internal::Type::BaseModel
41
+ extend Anthropic::Internal::Type::RequestParameters::Converter
42
+ include Anthropic::Internal::Type::RequestParameters
43
+
44
+ attr_accessor starting_at: Time
45
+
46
+ attr_accessor actor_ids: ::Array[String]?
47
+
48
+ attr_accessor actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?
49
+
50
+ attr_accessor agent_ids: ::Array[String]?
51
+
52
+ attr_accessor api_key_ids: ::Array[String]?
53
+
54
+ attr_accessor claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?
55
+
56
+ attr_accessor claude_tag_user_ids: ::Array[String]?
57
+
58
+ attr_accessor context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?
59
+
60
+ attr_accessor deployment_ids: ::Array[String]?
61
+
62
+ attr_accessor ending_at: Time?
63
+
64
+ attr_accessor environment_ids: ::Array[String]?
65
+
66
+ attr_reader exclude_deleted_users: bool?
67
+
68
+ def exclude_deleted_users=: (bool) -> bool
69
+
70
+ attr_accessor group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_group_by]?
71
+
72
+ attr_accessor inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?
73
+
74
+ attr_reader limit: Integer?
75
+
76
+ def limit=: (Integer) -> Integer
77
+
78
+ attr_accessor models: ::Array[String]?
79
+
80
+ attr_reader order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order?
81
+
82
+ def order=: (
83
+ Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order
84
+ ) -> Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order
85
+
86
+ attr_reader order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_order_by?
87
+
88
+ def order_by=: (
89
+ Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_order_by
90
+ ) -> Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_order_by
91
+
92
+ attr_accessor page: String?
93
+
94
+ attr_accessor products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?
95
+
96
+ attr_accessor rbac_group_ids: ::Array[String]?
97
+
98
+ attr_accessor service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?
99
+
100
+ attr_accessor session_ids: ::Array[String]?
101
+
102
+ attr_accessor slack_channel_ids: ::Array[String]?
103
+
104
+ attr_accessor speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?
105
+
106
+ attr_accessor time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?
107
+
108
+ attr_accessor user_profile_ids: ::Array[String]?
109
+
110
+ attr_accessor workspace_ids: ::Array[String]?
111
+
112
+ attr_reader betas: ::Array[Anthropic::Models::anthropic_beta]?
113
+
114
+ def betas=: (
115
+ ::Array[Anthropic::Models::anthropic_beta]
116
+ ) -> ::Array[Anthropic::Models::anthropic_beta]
117
+
118
+ def initialize: (
119
+ starting_at: Time,
120
+ ?actor_ids: ::Array[String]?,
121
+ ?actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?,
122
+ ?agent_ids: ::Array[String]?,
123
+ ?api_key_ids: ::Array[String]?,
124
+ ?claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?,
125
+ ?claude_tag_user_ids: ::Array[String]?,
126
+ ?context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?,
127
+ ?deployment_ids: ::Array[String]?,
128
+ ?ending_at: Time?,
129
+ ?environment_ids: ::Array[String]?,
130
+ ?exclude_deleted_users: bool,
131
+ ?group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_group_by]?,
132
+ ?inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?,
133
+ ?limit: Integer,
134
+ ?models: ::Array[String]?,
135
+ ?order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order,
136
+ ?order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_order_by,
137
+ ?page: String?,
138
+ ?products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?,
139
+ ?rbac_group_ids: ::Array[String]?,
140
+ ?service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?,
141
+ ?session_ids: ::Array[String]?,
142
+ ?slack_channel_ids: ::Array[String]?,
143
+ ?speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?,
144
+ ?time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?,
145
+ ?user_profile_ids: ::Array[String]?,
146
+ ?workspace_ids: ::Array[String]?,
147
+ ?betas: ::Array[Anthropic::Models::anthropic_beta],
148
+ ?request_options: Anthropic::request_opts
149
+ ) -> void
150
+
151
+ def to_hash: -> {
152
+ starting_at: Time,
153
+ actor_ids: ::Array[String]?,
154
+ actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?,
155
+ agent_ids: ::Array[String]?,
156
+ api_key_ids: ::Array[String]?,
157
+ claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?,
158
+ claude_tag_user_ids: ::Array[String]?,
159
+ context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?,
160
+ deployment_ids: ::Array[String]?,
161
+ ending_at: Time?,
162
+ environment_ids: ::Array[String]?,
163
+ exclude_deleted_users: bool,
164
+ group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_group_by]?,
165
+ inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?,
166
+ limit: Integer,
167
+ models: ::Array[String]?,
168
+ order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order,
169
+ order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_cost_order_by,
170
+ page: String?,
171
+ products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?,
172
+ rbac_group_ids: ::Array[String]?,
173
+ service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?,
174
+ session_ids: ::Array[String]?,
175
+ slack_channel_ids: ::Array[String]?,
176
+ speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?,
177
+ time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?,
178
+ user_profile_ids: ::Array[String]?,
179
+ workspace_ids: ::Array[String]?,
180
+ betas: ::Array[Anthropic::Models::anthropic_beta],
181
+ request_options: Anthropic::RequestOptions
182
+ }
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
@@ -0,0 +1,188 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ module Analytics
6
+ type usage_list_params =
7
+ {
8
+ starting_at: Time,
9
+ actor_ids: ::Array[String]?,
10
+ actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?,
11
+ agent_ids: ::Array[String]?,
12
+ api_key_ids: ::Array[String]?,
13
+ claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?,
14
+ claude_tag_user_ids: ::Array[String]?,
15
+ context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?,
16
+ deployment_ids: ::Array[String]?,
17
+ ending_at: Time?,
18
+ environment_ids: ::Array[String]?,
19
+ exclude_deleted_users: bool,
20
+ group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_group_by]?,
21
+ inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?,
22
+ limit: Integer,
23
+ models: ::Array[String]?,
24
+ order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order,
25
+ order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_order_by,
26
+ page: String?,
27
+ products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?,
28
+ rbac_group_ids: ::Array[String]?,
29
+ service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?,
30
+ session_ids: ::Array[String]?,
31
+ slack_channel_ids: ::Array[String]?,
32
+ speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?,
33
+ time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?,
34
+ user_profile_ids: ::Array[String]?,
35
+ workspace_ids: ::Array[String]?,
36
+ betas: ::Array[Anthropic::Models::anthropic_beta]
37
+ }
38
+ & Anthropic::Internal::Type::request_parameters
39
+
40
+ class UsageListParams < Anthropic::Internal::Type::BaseModel
41
+ extend Anthropic::Internal::Type::RequestParameters::Converter
42
+ include Anthropic::Internal::Type::RequestParameters
43
+
44
+ attr_accessor starting_at: Time
45
+
46
+ attr_accessor actor_ids: ::Array[String]?
47
+
48
+ attr_accessor actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?
49
+
50
+ attr_accessor agent_ids: ::Array[String]?
51
+
52
+ attr_accessor api_key_ids: ::Array[String]?
53
+
54
+ attr_accessor claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?
55
+
56
+ attr_accessor claude_tag_user_ids: ::Array[String]?
57
+
58
+ attr_accessor context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?
59
+
60
+ attr_accessor deployment_ids: ::Array[String]?
61
+
62
+ attr_accessor ending_at: Time?
63
+
64
+ attr_accessor environment_ids: ::Array[String]?
65
+
66
+ attr_reader exclude_deleted_users: bool?
67
+
68
+ def exclude_deleted_users=: (bool) -> bool
69
+
70
+ attr_accessor group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_group_by]?
71
+
72
+ attr_accessor inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?
73
+
74
+ attr_reader limit: Integer?
75
+
76
+ def limit=: (Integer) -> Integer
77
+
78
+ attr_accessor models: ::Array[String]?
79
+
80
+ attr_reader order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order?
81
+
82
+ def order=: (
83
+ Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order
84
+ ) -> Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order
85
+
86
+ attr_reader order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_order_by?
87
+
88
+ def order_by=: (
89
+ Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_order_by
90
+ ) -> Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_order_by
91
+
92
+ attr_accessor page: String?
93
+
94
+ attr_accessor products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?
95
+
96
+ attr_accessor rbac_group_ids: ::Array[String]?
97
+
98
+ attr_accessor service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?
99
+
100
+ attr_accessor session_ids: ::Array[String]?
101
+
102
+ attr_accessor slack_channel_ids: ::Array[String]?
103
+
104
+ attr_accessor speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?
105
+
106
+ attr_accessor time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?
107
+
108
+ attr_accessor user_profile_ids: ::Array[String]?
109
+
110
+ attr_accessor workspace_ids: ::Array[String]?
111
+
112
+ attr_reader betas: ::Array[Anthropic::Models::anthropic_beta]?
113
+
114
+ def betas=: (
115
+ ::Array[Anthropic::Models::anthropic_beta]
116
+ ) -> ::Array[Anthropic::Models::anthropic_beta]
117
+
118
+ def initialize: (
119
+ starting_at: Time,
120
+ ?actor_ids: ::Array[String]?,
121
+ ?actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?,
122
+ ?agent_ids: ::Array[String]?,
123
+ ?api_key_ids: ::Array[String]?,
124
+ ?claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?,
125
+ ?claude_tag_user_ids: ::Array[String]?,
126
+ ?context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?,
127
+ ?deployment_ids: ::Array[String]?,
128
+ ?ending_at: Time?,
129
+ ?environment_ids: ::Array[String]?,
130
+ ?exclude_deleted_users: bool,
131
+ ?group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_group_by]?,
132
+ ?inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?,
133
+ ?limit: Integer,
134
+ ?models: ::Array[String]?,
135
+ ?order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order,
136
+ ?order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_order_by,
137
+ ?page: String?,
138
+ ?products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?,
139
+ ?rbac_group_ids: ::Array[String]?,
140
+ ?service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?,
141
+ ?session_ids: ::Array[String]?,
142
+ ?slack_channel_ids: ::Array[String]?,
143
+ ?speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?,
144
+ ?time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?,
145
+ ?user_profile_ids: ::Array[String]?,
146
+ ?workspace_ids: ::Array[String]?,
147
+ ?betas: ::Array[Anthropic::Models::anthropic_beta],
148
+ ?request_options: Anthropic::request_opts
149
+ ) -> void
150
+
151
+ def to_hash: -> {
152
+ starting_at: Time,
153
+ actor_ids: ::Array[String]?,
154
+ actor_types: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]?,
155
+ agent_ids: ::Array[String]?,
156
+ api_key_ids: ::Array[String]?,
157
+ claude_tag_categories: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_claude_tag_category]?,
158
+ claude_tag_user_ids: ::Array[String]?,
159
+ context_windows: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_context_window]?,
160
+ deployment_ids: ::Array[String]?,
161
+ ending_at: Time?,
162
+ environment_ids: ::Array[String]?,
163
+ exclude_deleted_users: bool,
164
+ group_by: ::Array[Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_group_by]?,
165
+ inference_geos: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_inference_geo_filter]?,
166
+ limit: Integer,
167
+ models: ::Array[String]?,
168
+ order: Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_sort_order,
169
+ order_by: Anthropic::Models::Beta::Organization::Analytics::beta_analytics_usage_order_by,
170
+ page: String?,
171
+ products: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_usage_cost_product_filter]?,
172
+ rbac_group_ids: ::Array[String]?,
173
+ service_tiers: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_service_tier]?,
174
+ session_ids: ::Array[String]?,
175
+ slack_channel_ids: ::Array[String]?,
176
+ speeds: ::Array[Anthropic::Models::Beta::Organization::beta_analytics_speed]?,
177
+ time_bucket_width: Anthropic::Models::Beta::Organization::beta_analytics_time_bucket_width?,
178
+ user_profile_ids: ::Array[String]?,
179
+ workspace_ids: ::Array[String]?,
180
+ betas: ::Array[Anthropic::Models::anthropic_beta],
181
+ request_options: Anthropic::RequestOptions
182
+ }
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
@@ -0,0 +1,67 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_actor =
6
+ Anthropic::Beta::Organization::BetaAnalyticsReportUserActor
7
+ | Anthropic::Beta::Organization::BetaAnalyticsServiceAccountActor
8
+ | Anthropic::Beta::Organization::BetaAnalyticsFederatedActor
9
+ | Anthropic::Beta::Organization::BetaAnalyticsAPIActor
10
+
11
+ module BetaAnalyticsActor
12
+ extend Anthropic::Internal::Type::Union
13
+
14
+ type type_ =
15
+ :user_actor | :service_account_actor | :federated_actor | :api_actor
16
+
17
+ module Type
18
+ extend Anthropic::Internal::Type::Enum
19
+
20
+ USER_ACTOR: :user_actor
21
+ SERVICE_ACCOUNT_ACTOR: :service_account_actor
22
+ FEDERATED_ACTOR: :federated_actor
23
+ API_ACTOR: :api_actor
24
+
25
+ def self?.values: -> ::Array[Anthropic::Models::Beta::Organization::BetaAnalyticsActor::type_]
26
+ end
27
+
28
+ def self?.variants: -> ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor]
29
+
30
+ def self.new:
31
+ (
32
+ type: :user_actor | "user_actor",
33
+ deleted: bool,
34
+ email_address: String?,
35
+ name: String?,
36
+ user_id: String
37
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsReportUserActor
38
+ | (
39
+ type: :service_account_actor | "service_account_actor",
40
+ service_account_id: String
41
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsServiceAccountActor
42
+ | (
43
+ type: :federated_actor | "federated_actor",
44
+ provider: Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider,
45
+ subject: String?
46
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsFederatedActor
47
+ | (
48
+ type: :api_actor | "api_actor",
49
+ api_key_id: String
50
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsAPIActor
51
+ | (
52
+ type: Anthropic::Models::Beta::Organization::BetaAnalyticsActor::type_
53
+ | String,
54
+ ?deleted: bool,
55
+ ?email_address: String?,
56
+ ?name: String?,
57
+ ?user_id: String,
58
+ ?service_account_id: String,
59
+ ?provider: Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider,
60
+ ?subject: String?,
61
+ ?api_key_id: String
62
+ ) -> Anthropic::Models::Beta::Organization::beta_analytics_actor
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,21 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_actor_type =
6
+ :api_actor | :federated_actor | :service_account_actor | :user_actor
7
+
8
+ module BetaAnalyticsActorType
9
+ extend Anthropic::Internal::Type::Enum
10
+
11
+ API_ACTOR: :api_actor
12
+ FEDERATED_ACTOR: :federated_actor
13
+ SERVICE_ACCOUNT_ACTOR: :service_account_actor
14
+ USER_ACTOR: :user_actor
15
+
16
+ def self?.values: -> ::Array[Anthropic::Models::Beta::Organization::beta_analytics_actor_type]
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_api_actor = { api_key_id: String, type: :api_actor }
6
+
7
+ class BetaAnalyticsAPIActor < Anthropic::Internal::Type::BaseModel
8
+ attr_accessor api_key_id: String
9
+
10
+ attr_accessor type: :api_actor
11
+
12
+ def initialize: (api_key_id: String, ?type: :api_actor) -> void
13
+
14
+ def to_hash: -> { api_key_id: String, type: :api_actor }
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,34 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_federated_actor =
6
+ {
7
+ provider: Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider,
8
+ subject: String?,
9
+ type: :federated_actor
10
+ }
11
+
12
+ class BetaAnalyticsFederatedActor < Anthropic::Internal::Type::BaseModel
13
+ attr_accessor provider: Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider
14
+
15
+ attr_accessor subject: String?
16
+
17
+ attr_accessor type: :federated_actor
18
+
19
+ def initialize: (
20
+ provider: Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider,
21
+ subject: String?,
22
+ ?type: :federated_actor
23
+ ) -> void
24
+
25
+ def to_hash: -> {
26
+ provider: Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider,
27
+ subject: String?,
28
+ type: :federated_actor
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,30 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_federated_actor_aws_provider =
6
+ { account_id: String, signed_principal: String, type: :aws }
7
+
8
+ class BetaAnalyticsFederatedActorAWSProvider < Anthropic::Internal::Type::BaseModel
9
+ attr_accessor account_id: String
10
+
11
+ attr_accessor signed_principal: String
12
+
13
+ attr_accessor type: :aws
14
+
15
+ def initialize: (
16
+ account_id: String,
17
+ signed_principal: String,
18
+ ?type: :aws
19
+ ) -> void
20
+
21
+ def to_hash: -> {
22
+ account_id: String,
23
+ signed_principal: String,
24
+ type: :aws
25
+ }
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,20 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_federated_actor_azure_provider =
6
+ { subscription_id: String, type: :azure }
7
+
8
+ class BetaAnalyticsFederatedActorAzureProvider < Anthropic::Internal::Type::BaseModel
9
+ attr_accessor subscription_id: String
10
+
11
+ attr_accessor type: :azure
12
+
13
+ def initialize: (subscription_id: String, ?type: :azure) -> void
14
+
15
+ def to_hash: -> { subscription_id: String, type: :azure }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_federated_actor_gcp_provider =
6
+ { project_number: String, type: :gcp }
7
+
8
+ class BetaAnalyticsFederatedActorGCPProvider < Anthropic::Internal::Type::BaseModel
9
+ attr_accessor project_number: String
10
+
11
+ attr_accessor type: :gcp
12
+
13
+ def initialize: (project_number: String, ?type: :gcp) -> void
14
+
15
+ def to_hash: -> { project_number: String, type: :gcp }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_federated_actor_oidc_provider =
6
+ { issuer: String?, type: :oidc }
7
+
8
+ class BetaAnalyticsFederatedActorOIDCProvider < Anthropic::Internal::Type::BaseModel
9
+ attr_accessor issuer: String?
10
+
11
+ attr_accessor type: :oidc
12
+
13
+ def initialize: (issuer: String?, ?type: :oidc) -> void
14
+
15
+ def to_hash: -> { issuer: String?, type: :oidc }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,60 @@
1
+ module Anthropic
2
+ module Models
3
+ module Beta
4
+ module Organization
5
+ type beta_analytics_federated_actor_provider =
6
+ Anthropic::Beta::Organization::BetaAnalyticsFederatedActorAWSProvider
7
+ | Anthropic::Beta::Organization::BetaAnalyticsFederatedActorAzureProvider
8
+ | Anthropic::Beta::Organization::BetaAnalyticsFederatedActorGCPProvider
9
+ | Anthropic::Beta::Organization::BetaAnalyticsFederatedActorOIDCProvider
10
+
11
+ module BetaAnalyticsFederatedActorProvider
12
+ extend Anthropic::Internal::Type::Union
13
+
14
+ type type_ = :aws | :azure | :gcp | :oidc
15
+
16
+ module Type
17
+ extend Anthropic::Internal::Type::Enum
18
+
19
+ AWS: :aws
20
+ AZURE: :azure
21
+ GCP: :gcp
22
+ OIDC: :oidc
23
+
24
+ def self?.values: -> ::Array[Anthropic::Models::Beta::Organization::BetaAnalyticsFederatedActorProvider::type_]
25
+ end
26
+
27
+ def self?.variants: -> ::Array[Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider]
28
+
29
+ def self.new:
30
+ (
31
+ type: :aws | "aws",
32
+ account_id: String,
33
+ signed_principal: String
34
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsFederatedActorAWSProvider
35
+ | (
36
+ type: :azure | "azure",
37
+ subscription_id: String
38
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsFederatedActorAzureProvider
39
+ | (
40
+ type: :gcp | "gcp",
41
+ project_number: String
42
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsFederatedActorGCPProvider
43
+ | (
44
+ type: :oidc | "oidc",
45
+ issuer: String?
46
+ ) -> Anthropic::Beta::Organization::BetaAnalyticsFederatedActorOIDCProvider
47
+ | (
48
+ type: Anthropic::Models::Beta::Organization::BetaAnalyticsFederatedActorProvider::type_
49
+ | String,
50
+ ?account_id: String,
51
+ ?signed_principal: String,
52
+ ?subscription_id: String,
53
+ ?project_number: String,
54
+ ?issuer: String?
55
+ ) -> Anthropic::Models::Beta::Organization::beta_analytics_federated_actor_provider
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end