phoebe 0.1.0.pre.alpha.1 → 0.1.0.pre.alpha.2

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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +82 -0
  3. data/README.md +10 -1
  4. data/lib/phoebe/client.rb +15 -1
  5. data/lib/phoebe/internal/transport/base_client.rb +2 -0
  6. data/lib/phoebe/internal/transport/pooled_net_requester.rb +13 -11
  7. data/lib/phoebe/internal/util.rb +61 -10
  8. data/lib/phoebe/models/data/observations/geo/recent/specie_list_params.rb +8 -1
  9. data/lib/phoebe/models/data/observations/nearest/geo_specie_list_params.rb +8 -1
  10. data/lib/phoebe/models/data/observations/recent/historic_list_params.rb +8 -1
  11. data/lib/phoebe/models/data/observations/recent/notable_list_params.rb +8 -1
  12. data/lib/phoebe/models/data/observations/recent/specie_retrieve_params.rb +8 -1
  13. data/lib/phoebe/models/data/observations/recent_list_params.rb +8 -1
  14. data/lib/phoebe/models/product/checklist_view_params.rb +7 -1
  15. data/lib/phoebe/models/product/list_retrieve_params.rb +8 -1
  16. data/lib/phoebe/models/product/lists/historical_retrieve_params.rb +8 -1
  17. data/lib/phoebe/models/product/species_list_list_params.rb +7 -1
  18. data/lib/phoebe/models/product/stat_retrieve_params.rb +7 -1
  19. data/lib/phoebe/models/product/top100_retrieve_params.rb +8 -1
  20. data/lib/phoebe/models/ref/hotspot/info_retrieve_params.rb +7 -1
  21. data/lib/phoebe/models/ref/hotspot_list_params.rb +8 -1
  22. data/lib/phoebe/models/ref/region/adjacent_list_params.rb +7 -1
  23. data/lib/phoebe/models/ref/region/info_retrieve_params.rb +8 -1
  24. data/lib/phoebe/models/ref/region/list_list_params.rb +8 -1
  25. data/lib/phoebe/models/ref/taxonomy/form_list_params.rb +7 -1
  26. data/lib/phoebe/models/ref/taxonomy/species_group_list_params.rb +9 -1
  27. data/lib/phoebe/resources/data/observations/geo/recent/notable.rb +7 -1
  28. data/lib/phoebe/resources/data/observations/geo/recent/species.rb +7 -1
  29. data/lib/phoebe/resources/data/observations/geo/recent.rb +17 -1
  30. data/lib/phoebe/resources/data/observations/geo.rb +5 -0
  31. data/lib/phoebe/resources/data/observations/nearest/geo_species.rb +7 -1
  32. data/lib/phoebe/resources/data/observations/nearest.rb +5 -0
  33. data/lib/phoebe/resources/data/observations/recent/historic.rb +10 -4
  34. data/lib/phoebe/resources/data/observations/recent/notable.rb +7 -1
  35. data/lib/phoebe/resources/data/observations/recent/species.rb +7 -1
  36. data/lib/phoebe/resources/data/observations/recent.rb +22 -1
  37. data/lib/phoebe/resources/data/observations.rb +5 -0
  38. data/lib/phoebe/resources/product/checklist.rb +5 -0
  39. data/lib/phoebe/resources/product/lists/historical.rb +7 -1
  40. data/lib/phoebe/resources/product/lists.rb +12 -1
  41. data/lib/phoebe/resources/product/species_list.rb +5 -0
  42. data/lib/phoebe/resources/product/stats.rb +5 -0
  43. data/lib/phoebe/resources/product/top100.rb +7 -1
  44. data/lib/phoebe/resources/product.rb +25 -0
  45. data/lib/phoebe/resources/ref/hotspot/geo.rb +4 -1
  46. data/lib/phoebe/resources/ref/hotspot/info.rb +2 -0
  47. data/lib/phoebe/resources/ref/hotspot.rb +8 -1
  48. data/lib/phoebe/resources/ref/region/adjacent.rb +1 -0
  49. data/lib/phoebe/resources/ref/region/info.rb +3 -1
  50. data/lib/phoebe/resources/ref/region/list.rb +3 -1
  51. data/lib/phoebe/resources/ref/region.rb +3 -0
  52. data/lib/phoebe/resources/ref/taxonomy/ebird.rb +2 -1
  53. data/lib/phoebe/resources/ref/taxonomy/species_groups.rb +2 -1
  54. data/lib/phoebe/resources/ref.rb +2 -0
  55. data/lib/phoebe/version.rb +1 -1
  56. data/rbi/phoebe/internal/util.rbi +29 -1
  57. data/rbi/phoebe/models/data/observations/geo/recent/specie_list_params.rbi +6 -0
  58. data/rbi/phoebe/models/data/observations/nearest/geo_specie_list_params.rbi +6 -0
  59. data/rbi/phoebe/models/data/observations/recent/historic_list_params.rbi +6 -0
  60. data/rbi/phoebe/models/data/observations/recent/notable_list_params.rbi +6 -0
  61. data/rbi/phoebe/models/data/observations/recent/specie_retrieve_params.rbi +6 -0
  62. data/rbi/phoebe/models/data/observations/recent_list_params.rbi +6 -0
  63. data/rbi/phoebe/models/product/checklist_view_params.rbi +13 -5
  64. data/rbi/phoebe/models/product/list_retrieve_params.rbi +10 -1
  65. data/rbi/phoebe/models/product/lists/historical_retrieve_params.rbi +6 -0
  66. data/rbi/phoebe/models/product/species_list_list_params.rbi +13 -5
  67. data/rbi/phoebe/models/product/stat_retrieve_params.rbi +6 -1
  68. data/rbi/phoebe/models/product/top100_retrieve_params.rbi +6 -0
  69. data/rbi/phoebe/models/ref/hotspot/info_retrieve_params.rbi +13 -5
  70. data/rbi/phoebe/models/ref/hotspot_list_params.rbi +6 -0
  71. data/rbi/phoebe/models/ref/region/adjacent_list_params.rbi +13 -5
  72. data/rbi/phoebe/models/ref/region/info_retrieve_params.rbi +6 -0
  73. data/rbi/phoebe/models/ref/region/list_list_params.rbi +6 -0
  74. data/rbi/phoebe/models/ref/taxonomy/form_list_params.rbi +13 -5
  75. data/rbi/phoebe/models/ref/taxonomy/species_group_list_params.rbi +14 -0
  76. data/rbi/phoebe/resources/data/observations/geo/recent/notable.rbi +5 -0
  77. data/rbi/phoebe/resources/data/observations/geo/recent/species.rbi +5 -0
  78. data/rbi/phoebe/resources/data/observations/geo/recent.rbi +15 -0
  79. data/rbi/phoebe/resources/data/observations/geo.rbi +5 -0
  80. data/rbi/phoebe/resources/data/observations/nearest/geo_species.rbi +5 -0
  81. data/rbi/phoebe/resources/data/observations/nearest.rbi +5 -0
  82. data/rbi/phoebe/resources/data/observations/recent/historic.rbi +8 -3
  83. data/rbi/phoebe/resources/data/observations/recent/notable.rbi +5 -0
  84. data/rbi/phoebe/resources/data/observations/recent/species.rbi +5 -0
  85. data/rbi/phoebe/resources/data/observations/recent.rbi +20 -0
  86. data/rbi/phoebe/resources/data/observations.rbi +5 -0
  87. data/rbi/phoebe/resources/product/checklist.rbi +5 -0
  88. data/rbi/phoebe/resources/product/lists/historical.rbi +5 -0
  89. data/rbi/phoebe/resources/product/lists.rbi +10 -0
  90. data/rbi/phoebe/resources/product/species_list.rbi +5 -0
  91. data/rbi/phoebe/resources/product/stats.rbi +5 -0
  92. data/rbi/phoebe/resources/product/top100.rbi +5 -0
  93. data/rbi/phoebe/resources/product.rbi +25 -0
  94. data/rbi/phoebe/resources/ref/hotspot/geo.rbi +2 -0
  95. data/rbi/phoebe/resources/ref/hotspot/info.rbi +2 -0
  96. data/rbi/phoebe/resources/ref/hotspot.rbi +6 -0
  97. data/rbi/phoebe/resources/ref/region/adjacent.rbi +1 -0
  98. data/rbi/phoebe/resources/ref/region/info.rbi +1 -0
  99. data/rbi/phoebe/resources/ref/region/list.rbi +1 -0
  100. data/rbi/phoebe/resources/ref/region.rbi +3 -0
  101. data/rbi/phoebe/resources/ref.rbi +2 -0
  102. data/sig/phoebe/internal/util.rbs +14 -0
  103. data/sig/phoebe/models/data/observations/geo/recent/specie_list_params.rbs +5 -0
  104. data/sig/phoebe/models/data/observations/nearest/geo_specie_list_params.rbs +5 -0
  105. data/sig/phoebe/models/data/observations/recent/historic_list_params.rbs +5 -0
  106. data/sig/phoebe/models/data/observations/recent/notable_list_params.rbs +5 -0
  107. data/sig/phoebe/models/data/observations/recent/specie_retrieve_params.rbs +5 -0
  108. data/sig/phoebe/models/data/observations/recent_list_params.rbs +5 -0
  109. data/sig/phoebe/models/product/checklist_view_params.rbs +11 -3
  110. data/sig/phoebe/models/product/list_retrieve_params.rbs +6 -1
  111. data/sig/phoebe/models/product/lists/historical_retrieve_params.rbs +5 -0
  112. data/sig/phoebe/models/product/species_list_list_params.rbs +11 -3
  113. data/sig/phoebe/models/product/stat_retrieve_params.rbs +5 -1
  114. data/sig/phoebe/models/product/top100_retrieve_params.rbs +5 -0
  115. data/sig/phoebe/models/ref/hotspot/info_retrieve_params.rbs +11 -3
  116. data/sig/phoebe/models/ref/hotspot_list_params.rbs +9 -1
  117. data/sig/phoebe/models/ref/region/adjacent_list_params.rbs +11 -3
  118. data/sig/phoebe/models/ref/region/info_retrieve_params.rbs +5 -0
  119. data/sig/phoebe/models/ref/region/list_list_params.rbs +5 -0
  120. data/sig/phoebe/models/ref/taxonomy/form_list_params.rbs +11 -3
  121. data/sig/phoebe/models/ref/taxonomy/species_group_list_params.rbs +8 -1
  122. metadata +16 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df562241307cad128d5e189df4ae0efe98be043601239991a9dd0179a085e1e7
4
- data.tar.gz: d407be244d1f103c295d5f803dc015d66143dd5c8c81e4e0e1880a6e4ce4d508
3
+ metadata.gz: 436ba8dede7b74afe553da785e9f212de840562adc8d36eb92141af7c19ebba1
4
+ data.tar.gz: 884945cac800c0c18da46102ff683f075113f8fb9a97520adc3eed26cf413fea
5
5
  SHA512:
6
- metadata.gz: a0b51f30d11952bbd7e4a6bde3e69292a0355a664035348806d17307fc1f5bb31ee26c260c16efdd447db28ea5652da37382525933342d4ba7aed7f052965b2b
7
- data.tar.gz: 65b4ac646bfb478b609b200256ec64095891365593285b1120a3c4235ef6e2146c4ea9b4af894d5618b51cea3d26552d1a23112fbe78ba9814d5f5083d4557b0
6
+ metadata.gz: d1060f89f0ee3f41461b7e2c5fcd235f1d7166dbd7b1186f63ed8742cb83decd9a4debddaf69735b9821f9d57d0e8135ad602210a4c955e895b388da90296bcd
7
+ data.tar.gz: 427d20e01005775fc1b2ce828205568465c7a65ab84be2c28055a35ad2901ff52fafea37eea465e74c79131b3e78eea7eb04e8e3d6e8a11a4ebc4f5a4c7b5d43
data/CHANGELOG.md CHANGED
@@ -1,5 +1,87 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.2 (2026-05-14)
4
+
5
+ Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/phoebe-bird/phoebe-ruby/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)
6
+
7
+ ### Features
8
+
9
+ * **api:** manual updates ([109d3c5](https://github.com/phoebe-bird/phoebe-ruby/commit/109d3c57864c1b48b470cb29c152326362fff332))
10
+ * bump default connection pool size limit to minimum of 99 ([01ac449](https://github.com/phoebe-bird/phoebe-ruby/commit/01ac44998fab2e93a78b02e0a12caa3f5d022c43))
11
+ * expose base client options as read only attributes ([77d99c6](https://github.com/phoebe-bird/phoebe-ruby/commit/77d99c6e6021c0eecd95f800084b94936f74d5ff))
12
+ * expose recursive `#to_h` conversion ([940fafb](https://github.com/phoebe-bird/phoebe-ruby/commit/940fafb56476afbc94d8e7b1fe43db3ce3644150))
13
+ * support sorbet aliases at the runtime ([1c8b871](https://github.com/phoebe-bird/phoebe-ruby/commit/1c8b871035a4483f139fdcb85e3245c6a566c300))
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * `to_sorbet_type` should not return branded types ([37084eb](https://github.com/phoebe-bird/phoebe-ruby/commit/37084ebfc8ae89551c3dc97748f3fcf2a56a1e0a))
19
+ * calling `break` out of streams should be instantaneous ([fca92bf](https://github.com/phoebe-bird/phoebe-ruby/commit/fca92bfa572f66749c43303792fb36141ae0051e))
20
+ * correctly instantiate sorbet type aliases for enums and unions ([0676b84](https://github.com/phoebe-bird/phoebe-ruby/commit/0676b84f5075698c18618c98c9d3deef6348eaad))
21
+ * default content-type for text in multi-part formdata uploads should be text/plain ([decfc76](https://github.com/phoebe-bird/phoebe-ruby/commit/decfc76bed3c5dad19da4b609665b9fc7868e661))
22
+ * **internal:** update gemspec name ([f56d626](https://github.com/phoebe-bird/phoebe-ruby/commit/f56d62659d2e993f7207abbb4651d0923de40679))
23
+ * issue where json.parse errors when receiving HTTP 204 with nobody ([8cfbcb5](https://github.com/phoebe-bird/phoebe-ruby/commit/8cfbcb5c1c3a8ecc53bc875935b133973874a6c2))
24
+ * issue where we cannot mutate arrays on base model derivatives ([715fcdf](https://github.com/phoebe-bird/phoebe-ruby/commit/715fcdfa7aee36ca5c36a79dcb90841805ff6040))
25
+ * prevent rubocop from mangling `===` to `is_a?` check ([bbc3a94](https://github.com/phoebe-bird/phoebe-ruby/commit/bbc3a94869eb86c9e980a17e94c3d9fa2d8b1cec))
26
+ * should not reuse buffers for `IO.copy_stream` interop ([43ba832](https://github.com/phoebe-bird/phoebe-ruby/commit/43ba83288707aa952a0aff40f022b46f180f6047))
27
+ * sorbet types for enums, and make tapioca detection ignore `tapioca dsl` ([cdef832](https://github.com/phoebe-bird/phoebe-ruby/commit/cdef832fdaebe9c970da0e3a2b07d4ec01c8b3b9))
28
+
29
+
30
+ ### Chores
31
+
32
+ * **ci:** enable for pull requests ([469208a](https://github.com/phoebe-bird/phoebe-ruby/commit/469208a0deb9d712b4959e48f08d10facf9bf73b))
33
+ * **ci:** only run for pushes and fork pull requests ([6e6d2c7](https://github.com/phoebe-bird/phoebe-ruby/commit/6e6d2c773e1a56ad14012a302c1d4be1f23aefa7))
34
+ * **ci:** skip uploading artifacts on stainless-internal branches ([fd00827](https://github.com/phoebe-bird/phoebe-ruby/commit/fd00827c5b2e333619e7c6454c703d97b1960d7b))
35
+ * configure new SDK language ([08c8fe7](https://github.com/phoebe-bird/phoebe-ruby/commit/08c8fe7e2ad9ca0f315325590f4a3d0d6f2a7605))
36
+ * **docs:** grammar improvements ([1d2a214](https://github.com/phoebe-bird/phoebe-ruby/commit/1d2a21499e071fd16fadaccd51a7e5ad248d85ee))
37
+ * fix misc linting / minor issues ([e965adc](https://github.com/phoebe-bird/phoebe-ruby/commit/e965adc3ceae1bd3c575bc9147341e1135961b66))
38
+ * fix typo in descriptions ([92d6940](https://github.com/phoebe-bird/phoebe-ruby/commit/92d69409f9daa721a7356a955b7acb48a0a8bbd9))
39
+ * force utf-8 locale via `RUBYOPT` when formatting ([6e6b75b](https://github.com/phoebe-bird/phoebe-ruby/commit/6e6b75b4dc805645862526c5ccaa8c888660d650))
40
+ * **internal:** allow streams to also be unwrapped on a per-row basis ([41961d8](https://github.com/phoebe-bird/phoebe-ruby/commit/41961d85ce1577f72619467a62751404bc98f926))
41
+ * **internal:** codegen related update ([1240216](https://github.com/phoebe-bird/phoebe-ruby/commit/124021629d657159ad717365d4e573382ee5a996))
42
+ * **internal:** codegen related update ([4648023](https://github.com/phoebe-bird/phoebe-ruby/commit/46480234b1911d2d1558859f64e95e6cf8460d3f))
43
+ * **internal:** codegen related update ([cacb367](https://github.com/phoebe-bird/phoebe-ruby/commit/cacb3671d92be2f4b4de23a595443921a2ce22ed))
44
+ * **internal:** codegen related update ([c1c6aec](https://github.com/phoebe-bird/phoebe-ruby/commit/c1c6aec66fcf7b36f729836bee082d818a65b81e))
45
+ * **internal:** codegen related update ([25c8d52](https://github.com/phoebe-bird/phoebe-ruby/commit/25c8d527124702fec3b496a475e6f99f874de467))
46
+ * **internal:** codegen related update ([95dc19d](https://github.com/phoebe-bird/phoebe-ruby/commit/95dc19d20c13b2c2368079578364f8fc8354d53d))
47
+ * **internal:** codegen related update ([52fcd8d](https://github.com/phoebe-bird/phoebe-ruby/commit/52fcd8de4df2284a9eade9ceec4d97fb1c3d68d8))
48
+ * **internal:** codegen related update ([400d5f5](https://github.com/phoebe-bird/phoebe-ruby/commit/400d5f5df2157b72505487daff44f27d58bb83b4))
49
+ * **internal:** codegen related update ([9b61f34](https://github.com/phoebe-bird/phoebe-ruby/commit/9b61f34f0a10fb177e78a8ee7b861b91b47e1d65))
50
+ * **internal:** codegen related update ([4c982a9](https://github.com/phoebe-bird/phoebe-ruby/commit/4c982a9ab7fb720eb15aa3a2fd28665c0c0a1c4e))
51
+ * **internal:** codegen related update ([cd3b18f](https://github.com/phoebe-bird/phoebe-ruby/commit/cd3b18f6ce8008b59ff89e8d59e871da83dbfa1b))
52
+ * **internal:** codegen related update ([31ebe27](https://github.com/phoebe-bird/phoebe-ruby/commit/31ebe2730f6c42e322ccf6be4cacf6b7160ad21e))
53
+ * **internal:** codegen related update ([3134935](https://github.com/phoebe-bird/phoebe-ruby/commit/31349351855890f7eea7f1c649652995a21f7531))
54
+ * **internal:** codegen related update ([84b61c6](https://github.com/phoebe-bird/phoebe-ruby/commit/84b61c68526cbce40b53d90314ec51f61cf70287))
55
+ * **internal:** codegen related update ([d8b62a5](https://github.com/phoebe-bird/phoebe-ruby/commit/d8b62a5ee6a2a813a0f805b96b566479367654d5))
56
+ * **internal:** codegen related update ([6849f19](https://github.com/phoebe-bird/phoebe-ruby/commit/6849f1903a602356217bd8db9c4b64d37640fb0a))
57
+ * **internal:** codegen related update ([e1206e5](https://github.com/phoebe-bird/phoebe-ruby/commit/e1206e54dd46adb0715194cf3d8c6b0e84875236))
58
+ * **internal:** codegen related update ([4b78f7d](https://github.com/phoebe-bird/phoebe-ruby/commit/4b78f7da2326b012f7b9dcad1c4920f930ead7c6))
59
+ * **internal:** codegen related update ([d75cd8e](https://github.com/phoebe-bird/phoebe-ruby/commit/d75cd8e2eca41ee7ea28388f4b1bb5e709092e9b))
60
+ * **internal:** codegen related update ([a30d0e2](https://github.com/phoebe-bird/phoebe-ruby/commit/a30d0e2855b40a82ccfa4119dea264b9fc71799b))
61
+ * **internal:** codegen related update ([4d0d53a](https://github.com/phoebe-bird/phoebe-ruby/commit/4d0d53aa6a136812160592d5a9106613428583bb))
62
+ * **internal:** codegen related update ([45a93b7](https://github.com/phoebe-bird/phoebe-ruby/commit/45a93b7580f89366400fe6ec0255f9621e44af09))
63
+ * **internal:** codegen related update ([a84cbb3](https://github.com/phoebe-bird/phoebe-ruby/commit/a84cbb34aee0524ee74c64c918af9f218bee5571))
64
+ * **internal:** codegen related update ([a951643](https://github.com/phoebe-bird/phoebe-ruby/commit/a951643c914e2289aff7031d4e5b8e0eb6e09c78))
65
+ * **internal:** codegen related update ([cd5e4fb](https://github.com/phoebe-bird/phoebe-ruby/commit/cd5e4fbdc79946fe48b2ad209979d92009e6fa1b))
66
+ * **internal:** codegen related update ([ca43f16](https://github.com/phoebe-bird/phoebe-ruby/commit/ca43f16c65936ab35a33605d773d7d55c5bce8f8))
67
+ * **internal:** codegen related update ([5146050](https://github.com/phoebe-bird/phoebe-ruby/commit/514605007368f304b8a4676a5a1a6cd6cd38b250))
68
+ * **internal:** codegen related update ([df3cb28](https://github.com/phoebe-bird/phoebe-ruby/commit/df3cb2805cb24253e1d2039d199c7831cec60852))
69
+ * **internal:** codegen related update ([2157d6c](https://github.com/phoebe-bird/phoebe-ruby/commit/2157d6c7fca81d9c102080d9151eb323f311e70a))
70
+ * **internal:** codegen related update ([88d9205](https://github.com/phoebe-bird/phoebe-ruby/commit/88d9205b7db0cc5e1192d34cc7442dfb9308ad68))
71
+ * **internal:** update `actions/checkout` version ([ac471b9](https://github.com/phoebe-bird/phoebe-ruby/commit/ac471b9e685cea1b15ec0c7f9f8134f13839baa6))
72
+ * **internal:** version bump ([5d56366](https://github.com/phoebe-bird/phoebe-ruby/commit/5d56366f132c78114b7c626bd6688d6f9e16fef0))
73
+ * move `cgi` into dependencies for ruby 4 ([efeb572](https://github.com/phoebe-bird/phoebe-ruby/commit/efeb572bcf6b178808a6a7c1400b759558944bc8))
74
+ * refine Yard and Sorbet types and ensure linting is turned on for examples ([bbd825d](https://github.com/phoebe-bird/phoebe-ruby/commit/bbd825d7facd9955f9adcfe83ad7d148417c1f1f))
75
+ * update contribute.md ([5aad15e](https://github.com/phoebe-bird/phoebe-ruby/commit/5aad15e8964e69599ae8d434dae4a0d9d7da64f6))
76
+ * use fully qualified names for yard annotations and rbs aliases ([82f1786](https://github.com/phoebe-bird/phoebe-ruby/commit/82f1786851dcf9f3f3173207c8d2246f6e5c6874))
77
+ * whitespaces ([e6f232f](https://github.com/phoebe-bird/phoebe-ruby/commit/e6f232f1a243ac10d7d53eaf4d4c8f8b705dbd88))
78
+
79
+
80
+ ### Documentation
81
+
82
+ * prominently feature MCP server setup in root SDK readmes ([9583d55](https://github.com/phoebe-bird/phoebe-ruby/commit/9583d55d390bd9d0f9aa4e28974551b0f16edb1a))
83
+ * rewrite much of README.md for readability ([4fbff9f](https://github.com/phoebe-bird/phoebe-ruby/commit/4fbff9f778a037d1028af37c64e498d62337ef4c))
84
+
3
85
  ## 0.1.0-alpha.1 (2025-11-25)
4
86
 
5
87
  Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/phoebe-bird/phoebe-ruby/compare/v0.0.1-alpha.0...v0.1.0-alpha.1)
data/README.md CHANGED
@@ -4,6 +4,15 @@ The Phoebe Ruby library provides convenient access to the Phoebe REST API from a
4
4
 
5
5
  It is generated with [Stainless](https://www.stainless.com/).
6
6
 
7
+ ## MCP Server
8
+
9
+ Use the Phoebe MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
10
+
11
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=phoebe-ebird-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInBob2ViZS1lYmlyZC1tY3AiXSwiZW52Ijp7IkVCSVJEX0FQSV9LRVkiOiJNeSBBUEkgS2V5In19)
12
+ [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22phoebe-ebird-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22phoebe-ebird-mcp%22%5D%2C%22env%22%3A%7B%22EBIRD_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)
13
+
14
+ > Note: You may need to set environment variables in your MCP client.
15
+
7
16
  ## Documentation
8
17
 
9
18
  Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/phoebe).
@@ -17,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
17
26
  <!-- x-release-please-start-version -->
18
27
 
19
28
  ```ruby
20
- gem "phoebe", "~> 0.1.0.pre.alpha.1"
29
+ gem "phoebe", "~> 0.1.0.pre.alpha.2"
21
30
  ```
22
31
 
23
32
  <!-- x-release-please-end -->
data/lib/phoebe/client.rb CHANGED
@@ -62,6 +62,19 @@ module Phoebe
62
62
  raise ArgumentError.new("api_key is required, and can be set via environ: \"EBIRD_API_KEY\"")
63
63
  end
64
64
 
65
+ headers = {}
66
+ custom_headers_env = ENV["PHOEBE_CUSTOM_HEADERS"]
67
+ unless custom_headers_env.nil?
68
+ parsed = {}
69
+ custom_headers_env.split("\n").each do |line|
70
+ colon = line.index(":")
71
+ unless colon.nil?
72
+ parsed[line[0...colon].strip] = line[(colon + 1)..].strip
73
+ end
74
+ end
75
+ headers = parsed.merge(headers)
76
+ end
77
+
65
78
  @api_key = api_key.to_s
66
79
 
67
80
  super(
@@ -69,7 +82,8 @@ module Phoebe
69
82
  timeout: timeout,
70
83
  max_retries: max_retries,
71
84
  initial_retry_delay: initial_retry_delay,
72
- max_retry_delay: max_retry_delay
85
+ max_retry_delay: max_retry_delay,
86
+ headers: headers
73
87
  )
74
88
 
75
89
  @data = Phoebe::Resources::Data.new(client: self)
@@ -306,6 +306,8 @@ module Phoebe
306
306
  Phoebe::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
307
307
  end
308
308
 
309
+ headers.delete("content-type") if body.nil?
310
+
309
311
  url = Phoebe::Internal::Util.join_parsed_uri(
310
312
  @base_url_components,
311
313
  {**req, path: path, query: query}
@@ -75,7 +75,7 @@ module Phoebe
75
75
 
76
76
  case body
77
77
  in nil
78
- nil
78
+ req["content-length"] ||= 0 unless req["transfer-encoding"]
79
79
  in String
80
80
  req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
81
81
  req.body_stream = Phoebe::Internal::Util::ReadIOAdapter.new(body, &blk)
@@ -153,17 +153,19 @@ module Phoebe
153
153
  end
154
154
 
155
155
  self.class.calibrate_socket_timeout(conn, deadline)
156
- conn.request(req) do |rsp|
157
- y << [req, rsp]
158
- break if finished
159
-
160
- rsp.read_body do |bytes|
161
- y << bytes.force_encoding(Encoding::BINARY)
162
- break if finished
163
-
164
- self.class.calibrate_socket_timeout(conn, deadline)
156
+ ::Kernel.catch(:jump) do
157
+ conn.request(req) do |rsp|
158
+ y << [req, rsp]
159
+ ::Kernel.throw(:jump) if finished
160
+
161
+ rsp.read_body do |bytes|
162
+ y << bytes.force_encoding(Encoding::BINARY)
163
+ ::Kernel.throw(:jump) if finished
164
+
165
+ self.class.calibrate_socket_timeout(conn, deadline)
166
+ end
167
+ eof = true
165
168
  end
166
- eof = true
167
169
  end
168
170
  end
169
171
  ensure
@@ -157,7 +157,7 @@ module Phoebe
157
157
  in Hash | nil => coerced
158
158
  coerced
159
159
  else
160
- message = "Expected a #{Hash} or #{Phoebe::Internal::Type::BaseModel}, got #{data.inspect}"
160
+ message = "Expected a #{Hash} or #{Phoebe::Internal::Type::BaseModel}, got #{input.inspect}"
161
161
  raise ArgumentError.new(message)
162
162
  end
163
163
  end
@@ -237,6 +237,11 @@ module Phoebe
237
237
  end
238
238
  end
239
239
 
240
+ # @type [Regexp]
241
+ #
242
+ # https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
243
+ RFC_3986_NOT_PCHARS = /[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/
244
+
240
245
  class << self
241
246
  # @api private
242
247
  #
@@ -247,6 +252,15 @@ module Phoebe
247
252
  "#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}"
248
253
  end
249
254
 
255
+ # @api private
256
+ #
257
+ # @param path [String, Integer]
258
+ #
259
+ # @return [String]
260
+ def encode_path(path)
261
+ path.to_s.gsub(Phoebe::Internal::Util::RFC_3986_NOT_PCHARS) { ERB::Util.url_encode(_1) }
262
+ end
263
+
250
264
  # @api private
251
265
  #
252
266
  # @param path [String, Array<String>]
@@ -259,7 +273,7 @@ module Phoebe
259
273
  in []
260
274
  ""
261
275
  in [String => p, *interpolations]
262
- encoded = interpolations.map { ERB::Util.url_encode(_1) }
276
+ encoded = interpolations.map { encode_path(_1) }
263
277
  format(p, *encoded)
264
278
  end
265
279
  end
@@ -485,11 +499,42 @@ module Phoebe
485
499
  end
486
500
 
487
501
  # @type [Regexp]
488
- JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
502
+ JSON_CONTENT = %r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)}
489
503
  # @type [Regexp]
490
504
  JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
491
505
 
492
506
  class << self
507
+ # @api private
508
+ #
509
+ # @param query [Hash{Symbol=>Object}]
510
+ #
511
+ # @return [Hash{Symbol=>Object}]
512
+ def encode_query_params(query)
513
+ out = {}
514
+ query.each { write_query_param_element!(out, _1, _2) }
515
+ out
516
+ end
517
+
518
+ # @api private
519
+ #
520
+ # @param collection [Hash{Symbol=>Object}]
521
+ # @param key [String]
522
+ # @param element [Object]
523
+ #
524
+ # @return [nil]
525
+ private def write_query_param_element!(collection, key, element)
526
+ case element
527
+ in Hash
528
+ element.each do |name, value|
529
+ write_query_param_element!(collection, "#{key}[#{name}]", value)
530
+ end
531
+ in Array
532
+ collection[key] = element.map(&:to_s).join(",")
533
+ else
534
+ collection[key] = element.to_s
535
+ end
536
+ end
537
+
493
538
  # @api private
494
539
  #
495
540
  # @param y [Enumerator::Yielder]
@@ -540,16 +585,15 @@ module Phoebe
540
585
  y << "Content-Disposition: form-data"
541
586
 
542
587
  unless key.nil?
543
- name = ERB::Util.url_encode(key.to_s)
544
- y << "; name=\"#{name}\""
588
+ y << "; name=\"#{key}\""
545
589
  end
546
590
 
547
591
  case val
548
592
  in Phoebe::FilePart unless val.filename.nil?
549
- filename = ERB::Util.url_encode(val.filename)
593
+ filename = encode_path(val.filename)
550
594
  y << "; filename=\"#{filename}\""
551
595
  in Pathname | IO
552
- filename = ERB::Util.url_encode(::File.basename(val.to_path))
596
+ filename = encode_path(::File.basename(val.to_path))
553
597
  y << "; filename=\"#{filename}\""
554
598
  else
555
599
  end
@@ -566,6 +610,7 @@ module Phoebe
566
610
  #
567
611
  # @return [Array(String, Enumerable<String>)]
568
612
  private def encode_multipart_streaming(body)
613
+ # rubocop:disable Style/CaseEquality
569
614
  # RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length
570
615
  boundary = SecureRandom.urlsafe_base64(46)
571
616
 
@@ -575,7 +620,7 @@ module Phoebe
575
620
  in Hash
576
621
  body.each do |key, val|
577
622
  case val
578
- in Array if val.all? { primitive?(_1) }
623
+ in Array if val.all? { primitive?(_1) || Phoebe::Internal::Type::FileInput === _1 }
579
624
  val.each do |v|
580
625
  write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing)
581
626
  end
@@ -591,6 +636,7 @@ module Phoebe
591
636
 
592
637
  fused_io = fused_enum(strio) { closing.each(&:call) }
593
638
  [boundary, fused_io]
639
+ # rubocop:enable Style/CaseEquality
594
640
  end
595
641
 
596
642
  # @api private
@@ -657,7 +703,8 @@ module Phoebe
657
703
  def decode_content(headers, stream:, suppress_error: false)
658
704
  case (content_type = headers["content-type"])
659
705
  in Phoebe::Internal::Util::JSON_CONTENT
660
- json = stream.to_a.join
706
+ return nil if (json = stream.to_a.join).empty?
707
+
661
708
  begin
662
709
  JSON.parse(json, symbolize_names: true)
663
710
  rescue JSON::ParserError => e
@@ -667,7 +714,11 @@ module Phoebe
667
714
  in Phoebe::Internal::Util::JSONL_CONTENT
668
715
  lines = decode_lines(stream)
669
716
  chain_fused(lines) do |y|
670
- lines.each { y << JSON.parse(_1, symbolize_names: true) }
717
+ lines.each do
718
+ next if _1.empty?
719
+
720
+ y << JSON.parse(_1, symbolize_names: true)
721
+ end
671
722
  end
672
723
  in %r{^text/event-stream}
673
724
  lines = decode_lines(stream)
@@ -11,6 +11,11 @@ module Phoebe
11
11
  extend Phoebe::Internal::Type::RequestParameters::Converter
12
12
  include Phoebe::Internal::Type::RequestParameters
13
13
 
14
+ # @!attribute species_code
15
+ #
16
+ # @return [String]
17
+ required :species_code, String
18
+
14
19
  # @!attribute lat
15
20
  #
16
21
  # @return [Float]
@@ -57,7 +62,9 @@ module Phoebe
57
62
  # @return [String, nil]
58
63
  optional :spp_locale, String
59
64
 
60
- # @!method initialize(lat:, lng:, back: nil, dist: nil, hotspot: nil, include_provisional: nil, max_results: nil, spp_locale: nil, request_options: {})
65
+ # @!method initialize(species_code:, lat:, lng:, back: nil, dist: nil, hotspot: nil, include_provisional: nil, max_results: nil, spp_locale: nil, request_options: {})
66
+ # @param species_code [String]
67
+ #
61
68
  # @param lat [Float]
62
69
  #
63
70
  # @param lng [Float]
@@ -10,6 +10,11 @@ module Phoebe
10
10
  extend Phoebe::Internal::Type::RequestParameters::Converter
11
11
  include Phoebe::Internal::Type::RequestParameters
12
12
 
13
+ # @!attribute species_code
14
+ #
15
+ # @return [String]
16
+ required :species_code, String
17
+
13
18
  # @!attribute lat
14
19
  #
15
20
  # @return [Float]
@@ -56,7 +61,9 @@ module Phoebe
56
61
  # @return [String, nil]
57
62
  optional :spp_locale, String
58
63
 
59
- # @!method initialize(lat:, lng:, back: nil, dist: nil, hotspot: nil, include_provisional: nil, max_results: nil, spp_locale: nil, request_options: {})
64
+ # @!method initialize(species_code:, lat:, lng:, back: nil, dist: nil, hotspot: nil, include_provisional: nil, max_results: nil, spp_locale: nil, request_options: {})
65
+ # @param species_code [String]
66
+ #
60
67
  # @param lat [Float]
61
68
  #
62
69
  # @param lng [Float]
@@ -25,6 +25,11 @@ module Phoebe
25
25
  # @return [Integer]
26
26
  required :m, Integer
27
27
 
28
+ # @!attribute d
29
+ #
30
+ # @return [Integer]
31
+ required :d, Integer
32
+
28
33
  # @!attribute cat
29
34
  # Only fetch observations from these taxonomic categories
30
35
  #
@@ -73,13 +78,15 @@ module Phoebe
73
78
  # @return [String, nil]
74
79
  optional :spp_locale, String
75
80
 
76
- # @!method initialize(region_code:, y_:, m:, cat: nil, detail: nil, hotspot: nil, include_provisional: nil, max_results: nil, r: nil, rank: nil, spp_locale: nil, request_options: {})
81
+ # @!method initialize(region_code:, y_:, m:, d:, cat: nil, detail: nil, hotspot: nil, include_provisional: nil, max_results: nil, r: nil, rank: nil, spp_locale: nil, request_options: {})
77
82
  # @param region_code [String]
78
83
  #
79
84
  # @param y_ [Integer]
80
85
  #
81
86
  # @param m [Integer]
82
87
  #
88
+ # @param d [Integer]
89
+ #
83
90
  # @param cat [Symbol, Phoebe::Models::Data::Observations::Recent::HistoricListParams::Cat] Only fetch observations from these taxonomic categories
84
91
  #
85
92
  # @param detail [Symbol, Phoebe::Models::Data::Observations::Recent::HistoricListParams::Detail] Include a subset (simple), or all (full), of the fields available.
@@ -10,6 +10,11 @@ module Phoebe
10
10
  extend Phoebe::Internal::Type::RequestParameters::Converter
11
11
  include Phoebe::Internal::Type::RequestParameters
12
12
 
13
+ # @!attribute region_code
14
+ #
15
+ # @return [String]
16
+ required :region_code, String
17
+
13
18
  # @!attribute back
14
19
  # The number of days back to fetch observations.
15
20
  #
@@ -46,7 +51,9 @@ module Phoebe
46
51
  # @return [String, nil]
47
52
  optional :spp_locale, String
48
53
 
49
- # @!method initialize(back: nil, detail: nil, hotspot: nil, max_results: nil, r: nil, spp_locale: nil, request_options: {})
54
+ # @!method initialize(region_code:, back: nil, detail: nil, hotspot: nil, max_results: nil, r: nil, spp_locale: nil, request_options: {})
55
+ # @param region_code [String]
56
+ #
50
57
  # @param back [Integer] The number of days back to fetch observations.
51
58
  #
52
59
  # @param detail [Symbol, Phoebe::Models::Data::Observations::Recent::NotableListParams::Detail] Include a subset (simple), or all (full), of the fields available.
@@ -15,6 +15,11 @@ module Phoebe
15
15
  # @return [String]
16
16
  required :region_code, String
17
17
 
18
+ # @!attribute species_code
19
+ #
20
+ # @return [String]
21
+ required :species_code, String
22
+
18
23
  # @!attribute back
19
24
  # The number of days back to fetch observations.
20
25
  #
@@ -51,9 +56,11 @@ module Phoebe
51
56
  # @return [String, nil]
52
57
  optional :spp_locale, String
53
58
 
54
- # @!method initialize(region_code:, back: nil, hotspot: nil, include_provisional: nil, max_results: nil, r: nil, spp_locale: nil, request_options: {})
59
+ # @!method initialize(region_code:, species_code:, back: nil, hotspot: nil, include_provisional: nil, max_results: nil, r: nil, spp_locale: nil, request_options: {})
55
60
  # @param region_code [String]
56
61
  #
62
+ # @param species_code [String]
63
+ #
57
64
  # @param back [Integer] The number of days back to fetch observations.
58
65
  #
59
66
  # @param hotspot [Boolean] Only fetch observations from hotspots
@@ -9,6 +9,11 @@ module Phoebe
9
9
  extend Phoebe::Internal::Type::RequestParameters::Converter
10
10
  include Phoebe::Internal::Type::RequestParameters
11
11
 
12
+ # @!attribute region_code
13
+ #
14
+ # @return [String]
15
+ required :region_code, String
16
+
12
17
  # @!attribute back
13
18
  # The number of days back to fetch observations.
14
19
  #
@@ -51,7 +56,9 @@ module Phoebe
51
56
  # @return [String, nil]
52
57
  optional :spp_locale, String
53
58
 
54
- # @!method initialize(back: nil, cat: nil, hotspot: nil, include_provisional: nil, max_results: nil, r: nil, spp_locale: nil, request_options: {})
59
+ # @!method initialize(region_code:, back: nil, cat: nil, hotspot: nil, include_provisional: nil, max_results: nil, r: nil, spp_locale: nil, request_options: {})
60
+ # @param region_code [String]
61
+ #
55
62
  # @param back [Integer] The number of days back to fetch observations.
56
63
  #
57
64
  # @param cat [Symbol, Phoebe::Models::Data::Observations::RecentListParams::Cat] Only fetch observations from these taxonomic categories
@@ -8,7 +8,13 @@ module Phoebe
8
8
  extend Phoebe::Internal::Type::RequestParameters::Converter
9
9
  include Phoebe::Internal::Type::RequestParameters
10
10
 
11
- # @!method initialize(request_options: {})
11
+ # @!attribute sub_id
12
+ #
13
+ # @return [String]
14
+ required :sub_id, String
15
+
16
+ # @!method initialize(sub_id:, request_options: {})
17
+ # @param sub_id [String]
12
18
  # @param request_options [Phoebe::RequestOptions, Hash{Symbol=>Object}]
13
19
  end
14
20
  end
@@ -8,13 +8,20 @@ module Phoebe
8
8
  extend Phoebe::Internal::Type::RequestParameters::Converter
9
9
  include Phoebe::Internal::Type::RequestParameters
10
10
 
11
+ # @!attribute region_code
12
+ #
13
+ # @return [String]
14
+ required :region_code, String
15
+
11
16
  # @!attribute max_results
12
17
  # Only fetch this number of checklists.
13
18
  #
14
19
  # @return [Integer, nil]
15
20
  optional :max_results, Integer
16
21
 
17
- # @!method initialize(max_results: nil, request_options: {})
22
+ # @!method initialize(region_code:, max_results: nil, request_options: {})
23
+ # @param region_code [String]
24
+ #
18
25
  # @param max_results [Integer] Only fetch this number of checklists.
19
26
  #
20
27
  # @param request_options [Phoebe::RequestOptions, Hash{Symbol=>Object}]
@@ -24,6 +24,11 @@ module Phoebe
24
24
  # @return [Integer]
25
25
  required :m, Integer
26
26
 
27
+ # @!attribute d
28
+ #
29
+ # @return [Integer]
30
+ required :d, Integer
31
+
27
32
  # @!attribute max_results
28
33
  # Only fetch this number of checklists.
29
34
  #
@@ -36,13 +41,15 @@ module Phoebe
36
41
  # @return [Symbol, Phoebe::Models::Product::Lists::HistoricalRetrieveParams::SortKey, nil]
37
42
  optional :sort_key, enum: -> { Phoebe::Product::Lists::HistoricalRetrieveParams::SortKey }
38
43
 
39
- # @!method initialize(region_code:, y_:, m:, max_results: nil, sort_key: nil, request_options: {})
44
+ # @!method initialize(region_code:, y_:, m:, d:, max_results: nil, sort_key: nil, request_options: {})
40
45
  # @param region_code [String]
41
46
  #
42
47
  # @param y_ [Integer]
43
48
  #
44
49
  # @param m [Integer]
45
50
  #
51
+ # @param d [Integer]
52
+ #
46
53
  # @param max_results [Integer] Only fetch this number of checklists.
47
54
  #
48
55
  # @param sort_key [Symbol, Phoebe::Models::Product::Lists::HistoricalRetrieveParams::SortKey] Order the results by the date of the checklist or by the date it was submitted.
@@ -8,7 +8,13 @@ module Phoebe
8
8
  extend Phoebe::Internal::Type::RequestParameters::Converter
9
9
  include Phoebe::Internal::Type::RequestParameters
10
10
 
11
- # @!method initialize(request_options: {})
11
+ # @!attribute region_code
12
+ #
13
+ # @return [String]
14
+ required :region_code, String
15
+
16
+ # @!method initialize(region_code:, request_options: {})
17
+ # @param region_code [String]
12
18
  # @param request_options [Phoebe::RequestOptions, Hash{Symbol=>Object}]
13
19
  end
14
20
  end
@@ -23,10 +23,16 @@ module Phoebe
23
23
  # @return [Integer]
24
24
  required :m, Integer
25
25
 
26
- # @!method initialize(region_code:, y_:, m:, request_options: {})
26
+ # @!attribute d
27
+ #
28
+ # @return [Integer]
29
+ required :d, Integer
30
+
31
+ # @!method initialize(region_code:, y_:, m:, d:, request_options: {})
27
32
  # @param region_code [String]
28
33
  # @param y_ [Integer]
29
34
  # @param m [Integer]
35
+ # @param d [Integer]
30
36
  # @param request_options [Phoebe::RequestOptions, Hash{Symbol=>Object}]
31
37
  end
32
38
  end
@@ -23,6 +23,11 @@ module Phoebe
23
23
  # @return [Integer]
24
24
  required :m, Integer
25
25
 
26
+ # @!attribute d
27
+ #
28
+ # @return [Integer]
29
+ required :d, Integer
30
+
26
31
  # @!attribute max_results
27
32
  # Only fetch this number of contributors.
28
33
  #
@@ -35,13 +40,15 @@ module Phoebe
35
40
  # @return [Symbol, Phoebe::Models::Product::Top100RetrieveParams::RankedBy, nil]
36
41
  optional :ranked_by, enum: -> { Phoebe::Product::Top100RetrieveParams::RankedBy }
37
42
 
38
- # @!method initialize(region_code:, y_:, m:, max_results: nil, ranked_by: nil, request_options: {})
43
+ # @!method initialize(region_code:, y_:, m:, d:, max_results: nil, ranked_by: nil, request_options: {})
39
44
  # @param region_code [String]
40
45
  #
41
46
  # @param y_ [Integer]
42
47
  #
43
48
  # @param m [Integer]
44
49
  #
50
+ # @param d [Integer]
51
+ #
45
52
  # @param max_results [Integer] Only fetch this number of contributors.
46
53
  #
47
54
  # @param ranked_by [Symbol, Phoebe::Models::Product::Top100RetrieveParams::RankedBy] Order by number of complete checklists (cl) or by number of species seen (spp).