app_store_dev_api 0.1.9 → 0.3.1

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 (317) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.claude/settings.local.json +23 -0
  4. data/CHANGELOG.md +59 -2
  5. data/CLAUDE.md +256 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +35 -20
  8. data/README.md +212 -20
  9. data/Rakefile +99 -1
  10. data/SCRIPTS_ANALYSIS.md +261 -0
  11. data/docs/bundle_id_capabilities.md +382 -0
  12. data/docs/bundle_ids.md +417 -0
  13. data/docs/creating_api_keys.md +137 -0
  14. data/docs/generating_tokens.md +189 -0
  15. data/docs/openapi.oas4.2.json +231546 -0
  16. data/docs/openapi.oas4.3.json +230597 -0
  17. data/docs/pindo_usage_reference.md +234 -0
  18. data/docs/revoking_api_keys.md +118 -0
  19. data/install_local.bat +166 -0
  20. data/install_local.sh +95 -0
  21. data/install_local_fixed.sh +84 -0
  22. data/lib/.DS_Store +0 -0
  23. data/lib/app_store_dev_api/client/authorization.rb +7 -2
  24. data/lib/app_store_dev_api/client/builder.rb +43 -38
  25. data/lib/app_store_dev_api/client/options.rb +1 -1
  26. data/lib/app_store_dev_api/client.rb +31 -60
  27. data/lib/app_store_dev_api/object/attributes.rb +1 -1
  28. data/lib/app_store_dev_api/object/data.rb +6 -2
  29. data/lib/app_store_dev_api/object/relationships.rb +47 -0
  30. data/lib/app_store_dev_api/requests/v1/accessibility_declaration/create.rb +28 -0
  31. data/lib/app_store_dev_api/requests/v1/accessibility_declaration/update.rb +26 -0
  32. data/lib/app_store_dev_api/requests/v1/age_rating_declaration/update.rb +43 -0
  33. data/lib/app_store_dev_api/requests/v1/alternative_distribution_domain/create.rb +22 -0
  34. data/lib/app_store_dev_api/requests/v1/alternative_distribution_key/create.rb +25 -0
  35. data/lib/app_store_dev_api/requests/v1/alternative_distribution_package/create.rb +22 -0
  36. data/lib/app_store_dev_api/requests/v1/analytics_report_request/create.rb +25 -0
  37. data/lib/app_store_dev_api/requests/v1/android_to_ios_app_mapping_detail/create.rb +26 -0
  38. data/lib/app_store_dev_api/requests/v1/android_to_ios_app_mapping_detail/update.rb +22 -0
  39. data/lib/app_store_dev_api/requests/v1/app/update.rb +18 -20
  40. data/lib/app_store_dev_api/requests/v1/app_clip_advanced_experience/create.rb +32 -0
  41. data/lib/app_store_dev_api/requests/v1/app_clip_advanced_experience/update.rb +32 -0
  42. data/lib/app_store_dev_api/requests/v1/app_clip_advanced_experience_image/create.rb +22 -0
  43. data/lib/app_store_dev_api/requests/v1/app_clip_advanced_experience_image/update.rb +22 -0
  44. data/lib/app_store_dev_api/requests/v1/app_clip_app_store_review_detail/create.rb +19 -0
  45. data/lib/app_store_dev_api/requests/v1/{builds → app_clip_app_store_review_detail}/update.rb +4 -5
  46. data/lib/app_store_dev_api/requests/v1/app_clip_default_experience/create.rb +27 -0
  47. data/lib/app_store_dev_api/requests/v1/app_clip_default_experience/update.rb +25 -0
  48. data/lib/app_store_dev_api/requests/v1/app_clip_default_experience_localization/create.rb +26 -0
  49. data/lib/app_store_dev_api/requests/v1/app_clip_default_experience_localization/update.rb +21 -0
  50. data/lib/app_store_dev_api/requests/v1/app_clip_header_image/create.rb +26 -0
  51. data/lib/app_store_dev_api/requests/v1/app_clip_header_image/update.rb +22 -0
  52. data/lib/app_store_dev_api/requests/v1/app_custom_product_page/create.rb +28 -0
  53. data/lib/app_store_dev_api/requests/v1/app_custom_product_page/update.rb +22 -0
  54. data/lib/app_store_dev_api/requests/v1/app_custom_product_page_localization/create.rb +26 -0
  55. data/lib/app_store_dev_api/requests/v1/app_custom_product_page_localization/update.rb +21 -0
  56. data/lib/app_store_dev_api/requests/v1/app_custom_product_page_version/create.rb +26 -0
  57. data/lib/app_store_dev_api/requests/v1/app_custom_product_page_version/update.rb +21 -0
  58. data/lib/app_store_dev_api/requests/v1/app_encryption_declaration/create.rb +22 -0
  59. data/lib/app_store_dev_api/requests/v1/app_encryption_declaration_document/create.rb +24 -0
  60. data/lib/app_store_dev_api/requests/v1/app_encryption_declaration_document/update.rb +21 -0
  61. data/lib/app_store_dev_api/requests/v1/app_event/create.rb +26 -0
  62. data/lib/app_store_dev_api/requests/v1/app_event/update.rb +24 -0
  63. data/lib/app_store_dev_api/requests/v1/app_event_localization/create.rb +28 -0
  64. data/lib/app_store_dev_api/requests/v1/app_event_localization/update.rb +23 -0
  65. data/lib/app_store_dev_api/requests/v1/app_event_screenshot/create.rb +27 -0
  66. data/lib/app_store_dev_api/requests/v1/app_event_screenshot/update.rb +21 -0
  67. data/lib/app_store_dev_api/requests/v1/app_event_video_clip/create.rb +22 -0
  68. data/lib/app_store_dev_api/requests/v1/{promoted_purchases_image → app_event_video_clip}/update.rb +4 -4
  69. data/lib/app_store_dev_api/requests/v1/app_info/update.rb +15 -18
  70. data/lib/app_store_dev_api/requests/v1/app_info_localization/create.rb +17 -17
  71. data/lib/app_store_dev_api/requests/v1/app_info_localization/update.rb +14 -18
  72. data/lib/app_store_dev_api/requests/v1/app_preview/create.rb +22 -0
  73. data/lib/app_store_dev_api/requests/v1/app_preview/update.rb +22 -0
  74. data/lib/app_store_dev_api/requests/v1/app_preview_set/create.rb +25 -0
  75. data/lib/app_store_dev_api/requests/v1/app_preview_set/replace_app_previews_linkage.rb +19 -0
  76. data/lib/app_store_dev_api/requests/v1/app_price_schedule/create.rb +24 -0
  77. data/lib/app_store_dev_api/requests/v1/app_screenshot/create.rb +24 -0
  78. data/lib/app_store_dev_api/requests/v1/app_screenshot/update.rb +21 -0
  79. data/lib/app_store_dev_api/requests/v1/app_screenshot_set/create.rb +25 -0
  80. data/lib/app_store_dev_api/requests/v1/app_screenshot_set/replace_app_screenshots_linkage.rb +19 -0
  81. data/lib/app_store_dev_api/requests/v1/app_store_review_attachment/create.rb +20 -0
  82. data/lib/app_store_dev_api/requests/v1/app_store_review_attachment/update.rb +21 -0
  83. data/lib/app_store_dev_api/requests/v1/app_store_review_detail/create.rb +19 -20
  84. data/lib/app_store_dev_api/requests/v1/app_store_review_detail/update.rb +17 -18
  85. data/lib/app_store_dev_api/requests/v1/app_store_version/create.rb +20 -16
  86. data/lib/app_store_dev_api/requests/v1/app_store_version/update.rb +20 -18
  87. data/lib/app_store_dev_api/requests/v1/app_store_version_experiment/create.rb +26 -0
  88. data/lib/app_store_dev_api/requests/v1/app_store_version_experiment/update.rb +23 -0
  89. data/lib/app_store_dev_api/requests/v1/app_store_version_experiment_treatment/create.rb +27 -0
  90. data/lib/app_store_dev_api/requests/v1/app_store_version_experiment_treatment/update.rb +22 -0
  91. data/lib/app_store_dev_api/requests/v1/app_store_version_experiment_treatment_localization/create.rb +25 -0
  92. data/lib/app_store_dev_api/requests/v1/app_store_version_localization/create.rb +18 -18
  93. data/lib/app_store_dev_api/requests/v1/app_store_version_localization/update.rb +15 -18
  94. data/lib/app_store_dev_api/requests/v1/{app_store_version_phased_releases → app_store_version_phased_release}/create.rb +7 -2
  95. data/lib/app_store_dev_api/requests/v1/{app_store_version_phased_releases → app_store_version_phased_release}/update.rb +2 -2
  96. data/lib/app_store_dev_api/requests/v1/app_store_version_promotion/create.rb +10 -13
  97. data/lib/app_store_dev_api/requests/v1/{app_store_version_releases_request → app_store_version_release_request}/create.rb +5 -3
  98. data/lib/app_store_dev_api/requests/v1/app_tag/update.rb +21 -0
  99. data/lib/app_store_dev_api/requests/v1/background_asset/create.rb +19 -0
  100. data/lib/app_store_dev_api/requests/v1/background_asset/update.rb +21 -0
  101. data/lib/app_store_dev_api/requests/v1/background_asset_upload_file/create.rb +27 -0
  102. data/lib/app_store_dev_api/requests/v1/background_asset_upload_file/update.rb +23 -0
  103. data/lib/app_store_dev_api/requests/v1/background_asset_version/create.rb +16 -0
  104. data/lib/app_store_dev_api/requests/v1/beta_app_clip_invocation/create.rb +26 -0
  105. data/lib/app_store_dev_api/requests/v1/beta_app_clip_invocation/update.rb +21 -0
  106. data/lib/app_store_dev_api/requests/v1/beta_app_clip_invocation_localization/create.rb +26 -0
  107. data/lib/app_store_dev_api/requests/v1/beta_app_clip_invocation_localization/update.rb +21 -0
  108. data/lib/app_store_dev_api/requests/v1/beta_app_localization/create.rb +30 -0
  109. data/lib/app_store_dev_api/requests/v1/beta_app_localization/update.rb +25 -0
  110. data/lib/app_store_dev_api/requests/v1/beta_app_review_detail/update.rb +28 -0
  111. data/lib/app_store_dev_api/requests/v1/beta_app_review_submission/create.rb +22 -0
  112. data/lib/app_store_dev_api/requests/v1/beta_build_localization/create.rb +18 -18
  113. data/lib/app_store_dev_api/requests/v1/beta_build_localization/update.rb +15 -20
  114. data/lib/app_store_dev_api/requests/v1/beta_group/create.rb +33 -0
  115. data/lib/app_store_dev_api/requests/v1/beta_group/update.rb +27 -0
  116. data/lib/app_store_dev_api/requests/v1/beta_license_agreement/update.rb +21 -0
  117. data/lib/app_store_dev_api/requests/v1/beta_recruitment_criterion/create.rb +25 -0
  118. data/lib/app_store_dev_api/requests/v1/beta_recruitment_criterion/update.rb +21 -0
  119. data/lib/app_store_dev_api/requests/v1/beta_tester/create.rb +28 -0
  120. data/lib/app_store_dev_api/requests/v1/beta_tester_invitation/create.rb +23 -0
  121. data/lib/app_store_dev_api/requests/v1/build_beta_detail/update.rb +10 -13
  122. data/lib/app_store_dev_api/requests/v1/{subscription_price_change_consent_reason → build_beta_notification}/create.rb +8 -2
  123. data/lib/app_store_dev_api/requests/v1/build_upload/create.rb +27 -0
  124. data/lib/app_store_dev_api/requests/v1/build_upload_file/create.rb +28 -0
  125. data/lib/app_store_dev_api/requests/v1/build_upload_file/update.rb +22 -0
  126. data/lib/app_store_dev_api/requests/v1/bundle_id/create.rb +12 -15
  127. data/lib/app_store_dev_api/requests/v1/bundle_id/update.rb +20 -0
  128. data/lib/app_store_dev_api/requests/v1/bundle_id_capability/create.rb +13 -16
  129. data/lib/app_store_dev_api/requests/v1/bundle_id_capability/update.rb +18 -0
  130. data/lib/app_store_dev_api/requests/v1/certificate/create.rb +14 -15
  131. data/lib/app_store_dev_api/requests/v1/certificate/update.rb +17 -0
  132. data/lib/app_store_dev_api/requests/v1/ci_build_run/create.rb +28 -0
  133. data/lib/app_store_dev_api/requests/v1/ci_workflow/create.rb +41 -0
  134. data/lib/app_store_dev_api/requests/v1/ci_workflow/update.rb +39 -0
  135. data/lib/app_store_dev_api/requests/v1/customer_review_response_v1/create.rb +25 -0
  136. data/lib/app_store_dev_api/requests/v1/device/update.rb +18 -0
  137. data/lib/app_store_dev_api/requests/v1/end_app_availability_pre_order/create.rb +16 -0
  138. data/lib/app_store_dev_api/requests/v1/end_user_license_agreement/create.rb +24 -0
  139. data/lib/app_store_dev_api/requests/v1/end_user_license_agreement/update.rb +24 -0
  140. data/lib/app_store_dev_api/requests/v1/game_center_achievement/create.rb +31 -0
  141. data/lib/app_store_dev_api/requests/v1/game_center_achievement/update.rb +26 -0
  142. data/lib/app_store_dev_api/requests/v1/game_center_achievement_image/create.rb +26 -0
  143. data/lib/app_store_dev_api/requests/v1/game_center_achievement_image/update.rb +21 -0
  144. data/lib/app_store_dev_api/requests/v1/game_center_achievement_localization/create.rb +28 -0
  145. data/lib/app_store_dev_api/requests/v1/game_center_achievement_localization/update.rb +23 -0
  146. data/lib/app_store_dev_api/requests/v1/game_center_achievement_release/create.rb +23 -0
  147. data/lib/app_store_dev_api/requests/v1/game_center_activity/create.rb +32 -0
  148. data/lib/app_store_dev_api/requests/v1/game_center_activity/update.rb +27 -0
  149. data/lib/app_store_dev_api/requests/v1/game_center_activity_image/create.rb +27 -0
  150. data/lib/app_store_dev_api/requests/v1/game_center_activity_image/update.rb +21 -0
  151. data/lib/app_store_dev_api/requests/v1/game_center_activity_localization/create.rb +27 -0
  152. data/lib/app_store_dev_api/requests/v1/game_center_activity_localization/update.rb +22 -0
  153. data/lib/app_store_dev_api/requests/v1/game_center_activity_version/create.rb +25 -0
  154. data/lib/app_store_dev_api/requests/v1/game_center_activity_version/update.rb +21 -0
  155. data/lib/app_store_dev_api/requests/v1/game_center_activity_version_release/create.rb +23 -0
  156. data/lib/app_store_dev_api/requests/v1/game_center_app_version/create.rb +22 -0
  157. data/lib/app_store_dev_api/requests/v1/game_center_app_version/update.rb +21 -0
  158. data/lib/app_store_dev_api/requests/v1/game_center_challenge/create.rb +31 -0
  159. data/lib/app_store_dev_api/requests/v1/game_center_challenge/update.rb +28 -0
  160. data/lib/app_store_dev_api/requests/v1/game_center_challenge_image/create.rb +27 -0
  161. data/lib/app_store_dev_api/requests/v1/game_center_challenge_image/update.rb +21 -0
  162. data/lib/app_store_dev_api/requests/v1/game_center_challenge_localization/create.rb +27 -0
  163. data/lib/app_store_dev_api/requests/v1/game_center_challenge_localization/update.rb +22 -0
  164. data/lib/app_store_dev_api/requests/v1/game_center_challenge_version/create.rb +22 -0
  165. data/lib/app_store_dev_api/requests/v1/game_center_challenge_version_release/create.rb +23 -0
  166. data/lib/app_store_dev_api/requests/v1/{subscription_review_screenshot → game_center_detail}/create.rb +9 -4
  167. data/lib/app_store_dev_api/requests/v1/game_center_detail/update.rb +29 -0
  168. data/lib/app_store_dev_api/requests/v1/{customer_review_response → game_center_group}/create.rb +6 -4
  169. data/lib/app_store_dev_api/requests/v1/game_center_group/update.rb +21 -0
  170. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard/create.rb +38 -0
  171. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard/update.rb +32 -0
  172. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_entry_submission/create.rb +27 -0
  173. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_image/create.rb +26 -0
  174. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_image/update.rb +21 -0
  175. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_localization/create.rb +30 -0
  176. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_localization/update.rb +25 -0
  177. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_release/create.rb +23 -0
  178. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set/create.rb +28 -0
  179. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set/update.rb +21 -0
  180. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set_image/create.rb +26 -0
  181. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set_image/update.rb +21 -0
  182. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set_localization/create.rb +26 -0
  183. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set_localization/update.rb +21 -0
  184. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set_member_localization/create.rb +27 -0
  185. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set_member_localization/update.rb +21 -0
  186. data/lib/app_store_dev_api/requests/v1/game_center_leaderboard_set_release/create.rb +23 -0
  187. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_queue/create.rb +27 -0
  188. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_queue/update.rb +26 -0
  189. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_rule/create.rb +29 -0
  190. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_rule/update.rb +23 -0
  191. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_rule_set/create.rb +24 -0
  192. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_rule_set/update.rb +22 -0
  193. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_rule_set_test/create.rb +23 -0
  194. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_team/create.rb +27 -0
  195. data/lib/app_store_dev_api/requests/v1/game_center_matchmaking_team/update.rb +22 -0
  196. data/lib/app_store_dev_api/requests/v1/game_center_player_achievement_submission/create.rb +26 -0
  197. data/lib/app_store_dev_api/requests/v1/{in_app_purchase_review_screenshot → in_app_purchase_app_store_review_screenshot}/create.rb +9 -3
  198. data/lib/app_store_dev_api/requests/v1/{in_app_purchase_review_screenshot → in_app_purchase_app_store_review_screenshot}/update.rb +4 -3
  199. data/lib/app_store_dev_api/requests/v1/in_app_purchase_availability/create.rb +13 -12
  200. data/lib/app_store_dev_api/requests/v1/in_app_purchase_image/create.rb +24 -0
  201. data/lib/app_store_dev_api/requests/v1/in_app_purchase_image/update.rb +18 -0
  202. data/lib/app_store_dev_api/requests/v1/in_app_purchase_localization/create.rb +14 -14
  203. data/lib/app_store_dev_api/requests/v1/in_app_purchase_offer_code/create.rb +27 -0
  204. data/lib/app_store_dev_api/requests/v1/in_app_purchase_offer_code/update.rb +21 -0
  205. data/lib/app_store_dev_api/requests/v1/in_app_purchase_offer_code_custom_code/create.rb +27 -0
  206. data/lib/app_store_dev_api/requests/v1/in_app_purchase_offer_code_custom_code/update.rb +21 -0
  207. data/lib/app_store_dev_api/requests/v1/in_app_purchase_offer_code_one_time_use_code/create.rb +27 -0
  208. data/lib/app_store_dev_api/requests/v1/in_app_purchase_offer_code_one_time_use_code/update.rb +21 -0
  209. data/lib/app_store_dev_api/requests/v1/in_app_purchase_price_schedule/create.rb +11 -10
  210. data/lib/app_store_dev_api/requests/v1/in_app_purchase_submission/create.rb +9 -10
  211. data/lib/app_store_dev_api/requests/v1/marketplace_search_detail/create.rb +25 -0
  212. data/lib/app_store_dev_api/requests/v1/marketplace_search_detail/update.rb +21 -0
  213. data/lib/app_store_dev_api/requests/v1/{promoted_purchases → marketplace_webhook}/create.rb +7 -5
  214. data/lib/app_store_dev_api/requests/v1/marketplace_webhook/update.rb +22 -0
  215. data/lib/app_store_dev_api/requests/v1/merchant_id/create.rb +22 -0
  216. data/lib/app_store_dev_api/requests/v1/{app_price_schedule → merchant_id}/update.rb +7 -3
  217. data/lib/app_store_dev_api/requests/v1/nomination/create.rb +39 -0
  218. data/lib/app_store_dev_api/requests/v1/nomination/update.rb +40 -0
  219. data/lib/app_store_dev_api/requests/v1/pass_type_id/create.rb +22 -0
  220. data/lib/app_store_dev_api/requests/v1/pass_type_id/update.rb +21 -0
  221. data/lib/app_store_dev_api/requests/v1/profile/create.rb +14 -23
  222. data/lib/app_store_dev_api/requests/v1/promoted_purchase/create.rb +28 -0
  223. data/lib/app_store_dev_api/requests/v1/{promoted_purchases → promoted_purchase}/update.rb +4 -3
  224. data/lib/app_store_dev_api/requests/v1/review_submission/create.rb +11 -7
  225. data/lib/app_store_dev_api/requests/v1/review_submission/update.rb +12 -15
  226. data/lib/app_store_dev_api/requests/v1/review_submission_item/create.rb +20 -8
  227. data/lib/app_store_dev_api/requests/v1/review_submission_item/update.rb +18 -0
  228. data/lib/app_store_dev_api/requests/v1/routing_app_coverage/create.rb +24 -0
  229. data/lib/app_store_dev_api/requests/v1/routing_app_coverage/update.rb +21 -0
  230. data/lib/app_store_dev_api/requests/v1/subscription/create.rb +17 -17
  231. data/lib/app_store_dev_api/requests/v1/subscription/update.rb +19 -17
  232. data/lib/app_store_dev_api/requests/v1/subscription_app_store_review_screenshot/create.rb +26 -0
  233. data/lib/app_store_dev_api/requests/v1/{subscription_review_screenshot → subscription_app_store_review_screenshot}/update.rb +4 -3
  234. data/lib/app_store_dev_api/requests/v1/subscription_availability/create.rb +13 -12
  235. data/lib/app_store_dev_api/requests/v1/subscription_grace_period/update.rb +13 -16
  236. data/lib/app_store_dev_api/requests/v1/subscription_group/create.rb +12 -13
  237. data/lib/app_store_dev_api/requests/v1/subscription_group/update.rb +10 -14
  238. data/lib/app_store_dev_api/requests/v1/subscription_group_localization/create.rb +14 -16
  239. data/lib/app_store_dev_api/requests/v1/subscription_group_localization/update.rb +11 -16
  240. data/lib/app_store_dev_api/requests/v1/subscription_group_submission/create.rb +9 -10
  241. data/lib/app_store_dev_api/requests/v1/subscription_image/create.rb +20 -0
  242. data/lib/app_store_dev_api/requests/v1/subscription_image/update.rb +21 -0
  243. data/lib/app_store_dev_api/requests/v1/subscription_introductory_offer/create.rb +18 -18
  244. data/lib/app_store_dev_api/requests/v1/subscription_introductory_offer/update.rb +10 -15
  245. data/lib/app_store_dev_api/requests/v1/subscription_localization/create.rb +14 -16
  246. data/lib/app_store_dev_api/requests/v1/subscription_offer_code/create.rb +19 -19
  247. data/lib/app_store_dev_api/requests/v1/{subscription_offer_code_cunstom_code → subscription_offer_code_custom_code}/create.rb +9 -5
  248. data/lib/app_store_dev_api/requests/v1/{subscription_offer_code_cunstom_code → subscription_offer_code_custom_code}/update.rb +2 -3
  249. data/lib/app_store_dev_api/requests/v1/subscription_offer_code_one_time_use_code/create.rb +14 -15
  250. data/lib/app_store_dev_api/requests/v1/subscription_price/create.rb +15 -13
  251. data/lib/app_store_dev_api/requests/v1/subscription_promotional_offer/create.rb +17 -18
  252. data/lib/app_store_dev_api/requests/v1/subscription_promotional_offer/update.rb +10 -12
  253. data/lib/app_store_dev_api/requests/v1/subscription_submission/create.rb +9 -8
  254. data/lib/app_store_dev_api/requests/v1/{app_availability → territory_availability}/update.rb +4 -7
  255. data/lib/app_store_dev_api/requests/v1/user/update.rb +27 -0
  256. data/lib/app_store_dev_api/requests/v1/user_invitation/create.rb +30 -0
  257. data/lib/app_store_dev_api/requests/v1/webhook/create.rb +23 -0
  258. data/lib/app_store_dev_api/requests/v1/webhook/update.rb +21 -0
  259. data/lib/app_store_dev_api/requests/v1/webhook_delivery/create.rb +16 -0
  260. data/lib/app_store_dev_api/requests/v1/webhook_ping/create.rb +16 -0
  261. data/lib/app_store_dev_api/requests/v1/win_back_offer/create.rb +31 -0
  262. data/lib/app_store_dev_api/requests/v1/win_back_offer/update.rb +23 -0
  263. data/lib/app_store_dev_api/requests/v1/win_back_offer/update_prices_linkages.rb +18 -0
  264. data/lib/app_store_dev_api/requests/v2/app_availability/create.rb +13 -14
  265. data/lib/app_store_dev_api/requests/v2/app_availability_v2/create.rb +26 -0
  266. data/lib/app_store_dev_api/requests/v2/app_store_version_experiment_v2/create.rb +27 -0
  267. data/lib/app_store_dev_api/requests/v2/app_store_version_experiment_v2/update.rb +23 -0
  268. data/lib/app_store_dev_api/requests/v2/game_center_achievement_image_v2/create.rb +26 -0
  269. data/lib/app_store_dev_api/requests/v2/game_center_achievement_image_v2/update.rb +21 -0
  270. data/lib/app_store_dev_api/requests/v2/game_center_achievement_localization_v2/create.rb +28 -0
  271. data/lib/app_store_dev_api/requests/v2/game_center_achievement_localization_v2/update.rb +23 -0
  272. data/lib/app_store_dev_api/requests/v2/game_center_achievement_v2/create.rb +32 -0
  273. data/lib/app_store_dev_api/requests/v2/game_center_achievement_v2/update.rb +26 -0
  274. data/lib/app_store_dev_api/requests/v2/game_center_achievement_version_v2/create.rb +22 -0
  275. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_image_v2/create.rb +26 -0
  276. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_image_v2/update.rb +21 -0
  277. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_localization_v2/create.rb +30 -0
  278. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_localization_v2/update.rb +25 -0
  279. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_set_image_v2/create.rb +26 -0
  280. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_set_image_v2/update.rb +21 -0
  281. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_set_localization_v2/create.rb +26 -0
  282. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_set_localization_v2/update.rb +21 -0
  283. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_set_v2/create.rb +29 -0
  284. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_set_v2/update.rb +21 -0
  285. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_set_version_v2/create.rb +22 -0
  286. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_v2/create.rb +39 -0
  287. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_v2/update.rb +32 -0
  288. data/lib/app_store_dev_api/requests/v2/game_center_leaderboard_version_v2/create.rb +22 -0
  289. data/lib/app_store_dev_api/requests/v2/in_app_purchase/create.rb +16 -17
  290. data/lib/app_store_dev_api/requests/v2/in_app_purchase/update.rb +12 -15
  291. data/lib/app_store_dev_api/requests/v2/in_app_purchase_v2/create.rb +29 -0
  292. data/lib/app_store_dev_api/requests/v2/in_app_purchase_v2/update.rb +23 -0
  293. data/lib/app_store_dev_api/requests/v2/{sandbox_tester → sandbox_tester_v2}/update.rb +5 -4
  294. data/lib/app_store_dev_api/requests/v2/{sandbox_tester_clear_purchase_history/update.rb → sandbox_testers_clear_purchase_history_request_v2/create.rb} +9 -3
  295. data/lib/app_store_dev_api/version.rb +1 -1
  296. data/lib/config/{schema.json → schema_backup.json} +1185 -51
  297. data/lib/config/schema_v4.3.json +7307 -0
  298. data/push_all.sh +6 -0
  299. data/release_remote.sh +140 -0
  300. data/scripts/README.md +126 -0
  301. data/scripts/cleanup_scripts.sh +73 -0
  302. data/scripts/comprehensive_validation.rb +359 -0
  303. data/scripts/comprehensive_validation_report.json +12 -0
  304. data/scripts/final_validation_report.rb +134 -0
  305. data/scripts/find_deprecated_requests.rb +145 -0
  306. data/scripts/test_request_body_classes.rb +185 -0
  307. data/scripts/validate_requests.rb +192 -0
  308. data/test_library.rb +160 -0
  309. metadata +250 -34
  310. data/CODE_OF_CONDUCT.md +0 -84
  311. data/lib/app_store_dev_api/requests/v1/app_promoted_purchases/update.rb +0 -16
  312. data/lib/app_store_dev_api/requests/v1/app_store_version_build_linkage_request/update.rb +0 -17
  313. data/lib/app_store_dev_api/requests/v1/build_beta_groups/create.rb +0 -16
  314. data/lib/app_store_dev_api/requests/v1/build_beta_groups/delete.rb +0 -16
  315. data/lib/app_store_dev_api/requests/v1/promoted_purchases_image/create.rb +0 -20
  316. data/lib/app_store_dev_api/requests/v2/sandbox_tester/create.rb +0 -23
  317. data/release.sh +0 -55
@@ -19,15 +19,20 @@ module AppStoreDevApi
19
19
  end
20
20
 
21
21
  def payload
22
+ current_time = Time.now.to_i
22
23
  {
23
- exp: Time.now.to_i + 20 * 60,
24
24
  iss: issuer_id,
25
+ iat: current_time,
26
+ exp: current_time + 20 * 60,
25
27
  aud: AUDIENCE
26
28
  }
27
29
  end
28
30
 
29
31
  def header_fields
30
- { kid: key_id }
32
+ {
33
+ kid: key_id,
34
+ typ: 'JWT'
35
+ }
31
36
  end
32
37
 
33
38
  def token
@@ -1,5 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'json'
4
+ require 'active_support/core_ext/hash'
5
+
6
+ # ⚠️ 注意:此 Builder 类已不再使用
7
+ #
8
+ # Client 现在完全使用动态方法调度(method_missing),无需预生成方法。
9
+ #
10
+ # 此 Builder 类保留用于以下可选场景:
11
+ # 1. IDE 自动补全支持 - 生成方法定义供 IDE 解析
12
+ # 2. 类型检查工具 - 生成方法签名供 Sorbet/Steep 使用
13
+ # 3. 文档生成 - 生成完整的方法列表文档
14
+ #
15
+ # 默认情况下不使用,Client 直接继承 Base 使用动态调度。
16
+ #
17
+ # 如需生成(可选):
18
+ # ruby -r ./lib/app_store_dev_api/client/builder.rb \
19
+ # -e "AppStoreDevApi::Client::Builder.new.write"
20
+ #
21
+ # 生成后的文件:
22
+ # lib/app_store_dev_api/client_generated.rb (不会覆盖 client.rb)
23
+ #
3
24
  module AppStoreDevApi
4
25
  class Client
5
26
  class Builder
@@ -11,6 +32,7 @@ module AppStoreDevApi
11
32
  # This file is generated.
12
33
  #
13
34
  # WARNING ABOUT GENERATED CODE
35
+ #
14
36
 
15
37
  module AppStoreDevApi
16
38
  class Client < Base
@@ -33,46 +55,23 @@ module AppStoreDevApi
33
55
  private_constant :TEMPLATE
34
56
 
35
57
  def web_service_endpoints
36
- [
37
- {
38
- "alias": 'create_certificate',
39
- "http_method": 'post',
40
- "url": 'https://api.appstoreconnect.apple.com/v1/certificates',
41
- "http_body_type": 'Requests::V1::Certificate::Create',
42
- "see": 'https://developer.apple.com/documentation/appstoreconnectapi'
43
- },
44
- {
45
- "http_method": 'delete',
46
- "url": 'https://api.appstoreconnect.apple.com/v1/users/{id}/relationships/visibleApps',
47
- "alias": 'delete_visible_app',
48
- "see": 'https://developer.apple.com/documentation/appstoreconnectapi'
49
- },
50
- {
51
- "alias": 'create_bundle_id',
52
- "url": 'https://api.appstoreconnect.apple.com/v1/bundleIds',
53
- "http_body_type": 'Requests::V1::BundleId::Create',
54
- "http_method": 'post',
55
- "see": 'https://developer.apple.com/documentation/appstoreconnectapi/register_a_new_bundle_id'
56
- },
57
- {
58
- "alias": 'create_bundle_id_capability',
59
- "url": 'https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities',
60
- "http_body_type": 'Requests::V1::BundleIdCapability::Create',
61
- "http_method": 'post',
62
- "see": 'https://developer.apple.com/documentation/appstoreconnectapi'
63
- },
64
- {
65
- "alias": 'create_beta_build_localization',
66
- "url": 'https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations',
67
- "http_body_type": 'Requests::V1::BetaBuildLocalization::Create',
68
- "http_method": 'post',
69
- "see": 'https://developer.apple.com/documentation/appstoreconnectapi'
70
- }
71
- ].map(&:symbolize_keys)
58
+ @web_service_endpoints ||= begin
59
+ schema_content = File.read(schema_path)
60
+ schema = JSON.parse(schema_content)
61
+
62
+ schema['web_service_endpoints'].map do |endpoint|
63
+ endpoint.symbolize_keys.tap do |ep|
64
+ ep[:see] ||= 'https://developer.apple.com/documentation/appstoreconnectapi'
65
+ end
66
+ end
67
+ end
72
68
  end
73
69
 
74
- def write
75
- File.write('lib/app_store_dev_api/client.rb', source)
70
+ def write(output_file = 'lib/app_store_dev_api/client_generated.rb')
71
+ File.write(output_file, source)
72
+ puts "✅ 已生成方法定义到: #{output_file}"
73
+ puts "⚠️ 注意: 这是可选的生成文件,仅用于 IDE 支持"
74
+ puts " 默认使用动态调度,无需此文件"
76
75
  end
77
76
 
78
77
  def source
@@ -86,6 +85,12 @@ module AppStoreDevApi
86
85
 
87
86
  @source
88
87
  end
88
+
89
+ private
90
+
91
+ def schema_path
92
+ File.join(Dir.pwd, 'lib/config/schema_v4.3.json')
93
+ end
89
94
  end
90
95
  end
91
96
  end
@@ -9,7 +9,7 @@ module AppStoreDevApi
9
9
 
10
10
  DEFAULTS = {
11
11
  analytics_enabled: true,
12
- schema: Schema.new(File.join(__dir__, '..', '..', 'config', 'schema.json'))
12
+ schema: Schema.new(File.join(__dir__, '..', '..', 'config', 'schema_v4.3.json'))
13
13
  }.freeze
14
14
  private_constant :DEFAULTS
15
15
 
@@ -1,66 +1,37 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # WARNING ABOUT GENERATED CODE
4
- #
5
- # This file is generated.
6
- #
7
- # WARNING ABOUT GENERATED CODE
8
-
9
3
  module AppStoreDevApi
4
+ # Client 使用 Base 的 method_missing 机制动态调度所有 API 方法
5
+ # 所有端点配置从 schema.json 加载
6
+ #
7
+ # 用法:
8
+ # client = AppStoreDevApi::Client.new(
9
+ # issuer_id: 'your_issuer_id',
10
+ # key_id: 'your_key_id',
11
+ # private_key: private_key_pem
12
+ # )
13
+ #
14
+ # 所有 API 方法都可用(共 1,210 个方法):
15
+ # client.list_apps
16
+ # client.create_bundle_id(...)
17
+ # client.delete_user(id: 'user_id')
18
+ # client.app_info(id: 'app_id')
19
+ #
20
+ # 查看所有可用方法:
21
+ # client.web_service_endpoint_aliases
22
+ # # => [:create_accessibility_declaration, :list_apps, ...]
23
+ #
24
+ # 检查方法是否存在:
25
+ # client.respond_to?(:list_apps) # => true
26
+ #
27
+ # 方法总数:
28
+ # client.web_service_endpoint_aliases.size # => 1210
29
+ #
30
+ # API 文档:
31
+ # https://developer.apple.com/documentation/appstoreconnectapi
32
+ #
10
33
  class Client < Base
11
- #
12
- # @see https://developer.apple.com/documentation/appstoreconnectapi
13
- #
14
- def create_certificate(**kwargs)
15
- web_service_endpoint = Schema::WebServiceEndpoint.new(
16
- { http_body_type: 'Requests::V1::Certificate::Create', http_method: 'post', url: 'https://api.appstoreconnect.apple.com/v1/certificates' }
17
- )
18
-
19
- call(web_service_endpoint, **kwargs)
20
- end
21
-
22
- #
23
- # @see https://developer.apple.com/documentation/appstoreconnectapi
24
- #
25
- def delete_visible_app(**kwargs)
26
- web_service_endpoint = Schema::WebServiceEndpoint.new(
27
- { http_method: 'delete', url: 'https://api.appstoreconnect.apple.com/v1/users/{id}/relationships/visibleApps' }
28
- )
29
-
30
- call(web_service_endpoint, **kwargs)
31
- end
32
-
33
- #
34
- # @see https://developer.apple.com/documentation/appstoreconnectapi/register_a_new_bundle_id
35
- #
36
- def create_bundle_id(**kwargs)
37
- web_service_endpoint = Schema::WebServiceEndpoint.new(
38
- { http_body_type: 'Requests::V1::BundleId::Create', http_method: 'post', url: 'https://api.appstoreconnect.apple.com/v1/bundleIds' }
39
- )
40
-
41
- call(web_service_endpoint, **kwargs)
42
- end
43
-
44
- #
45
- # @see https://developer.apple.com/documentation/appstoreconnectapi
46
- #
47
- def create_bundle_id_capability(**kwargs)
48
- web_service_endpoint = Schema::WebServiceEndpoint.new(
49
- { http_body_type: 'Requests::V1::BundleIdCapability::Create', http_method: 'post', url: 'https://api.appstoreconnect.apple.com/v1/bundleIdCapabilities' }
50
- )
51
-
52
- call(web_service_endpoint, **kwargs)
53
- end
54
-
55
- #
56
- # @see https://developer.apple.com/documentation/appstoreconnectapi
57
- #
58
- def create_beta_build_localization(**kwargs)
59
- web_service_endpoint = Schema::WebServiceEndpoint.new(
60
- { http_body_type: 'Requests::V1::BetaBuildLocalization::Create', http_method: 'post', url: 'https://api.appstoreconnect.apple.com/v1/betaBuildLocalizations' }
61
- )
62
-
63
- call(web_service_endpoint, **kwargs)
64
- end
34
+ # 所有方法通过 Base#method_missing 动态调度
35
+ # 端点配置从 lib/config/schema_v4.3.json 加载
65
36
  end
66
37
  end
@@ -21,7 +21,7 @@ module AppStoreDevApi
21
21
 
22
22
  attributes.send(:define_method, :initialize) do |**kwargs|
23
23
  self.class.properties.each do |name, options|
24
- raise ArgumentError, "#{name} required" if options[:required] && !kwargs[name]
24
+ raise ArgumentError, "#{name} required" if options[:required] && !kwargs.key?(name)
25
25
 
26
26
  value = kwargs.fetch(name, options[:default])
27
27
 
@@ -13,19 +13,23 @@ module AppStoreDevApi
13
13
  klass = Class.new do |data|
14
14
  include Object::DataType
15
15
  include Object::Attributes
16
+ include Object::Relationships
16
17
  include Object::Type
17
18
  include Object::Id
18
19
 
19
20
  data.send(:define_method, :initialize) do |**kwargs|
20
- instance_variable_set('@relationships', kwargs.delete(:relationships).to_h)
21
+ # 提取 relationships 参数
22
+ relationships_data = kwargs.delete(:relationships) || {}
23
+
21
24
  instance_variable_set('@data', Array(kwargs.delete(:data)))
22
25
  instance_variable_set('@attributes', data::Attributes.new(**kwargs))
26
+ instance_variable_set('@relationships', data::Relationships.new(**relationships_data))
23
27
  instance_variable_set('@id', kwargs[id_arg_name])
24
28
  end
25
29
 
26
30
  def to_h
27
31
  props = {
28
- relationships: @relationships,
32
+ relationships: relationships.to_h,
29
33
  attributes: attributes.to_h,
30
34
  type: type
31
35
  }
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/concern'
4
+
5
+ module AppStoreDevApi
6
+ module Object
7
+ module Relationships
8
+ extend ActiveSupport::Concern
9
+
10
+ class_methods do
11
+ def relationships(&block)
12
+ self::Relationships.class_eval(&block)
13
+ end
14
+ end
15
+
16
+ included do
17
+ attr_reader :relationships
18
+
19
+ klass = Class.new do |relationships|
20
+ include Object::Properties
21
+
22
+ relationships.send(:define_method, :initialize) do |**kwargs|
23
+ self.class.properties.each do |name, options|
24
+ raise ArgumentError, "#{name} required" if options[:required] && !kwargs.key?(name)
25
+
26
+ value = kwargs.fetch(name, options[:default])
27
+
28
+ instance_variable_set("@#{name}", value)
29
+ end
30
+ end
31
+
32
+ def to_h
33
+ {}.tap do |hash|
34
+ self.class.properties.each_key do |name|
35
+ value = instance_variable_get("@#{name}")
36
+
37
+ hash[name] = value unless value.nil?
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ const_set('Relationships', klass)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,28 @@
1
+ module AppStoreDevApi
2
+ module Requests
3
+ module V1
4
+ module AccessibilityDeclaration
5
+ class Create < Request::Body
6
+ data do
7
+ type 'accessibilityDeclarations'
8
+ attributes do
9
+ property :deviceFamily, required: true
10
+ property :supportsAudioDescriptions
11
+ property :supportsCaptions
12
+ property :supportsDarkInterface
13
+ property :supportsDifferentiateWithoutColorAlone
14
+ property :supportsLargerText
15
+ property :supportsReducedMotion
16
+ property :supportsSufficientContrast
17
+ property :supportsVoiceControl
18
+ property :supportsVoiceover
19
+ end
20
+ relationships do
21
+ property :app, required: true
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ module AppStoreDevApi
2
+ module Requests
3
+ module V1
4
+ module AccessibilityDeclaration
5
+ class Update < Request::Body
6
+ data do
7
+ id
8
+ type 'accessibilityDeclarations'
9
+ attributes do
10
+ property :publish
11
+ property :supportsAudioDescriptions
12
+ property :supportsCaptions
13
+ property :supportsDarkInterface
14
+ property :supportsDifferentiateWithoutColorAlone
15
+ property :supportsLargerText
16
+ property :supportsReducedMotion
17
+ property :supportsSufficientContrast
18
+ property :supportsVoiceControl
19
+ property :supportsVoiceover
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,43 @@
1
+ module AppStoreDevApi
2
+ module Requests
3
+ module V1
4
+ module AgeRatingDeclaration
5
+ class Update < Request::Body
6
+ data do
7
+ id
8
+ type 'ageRatingDeclarations'
9
+ attributes do
10
+ property :advertising
11
+ property :alcoholTobaccoOrDrugUseOrReferences
12
+ property :contests
13
+ property :gambling
14
+ property :gamblingSimulated
15
+ property :gunsOrOtherWeapons
16
+ property :healthOrWellnessTopics
17
+ property :kidsAgeBand
18
+ property :lootBox
19
+ property :medicalOrTreatmentInformation
20
+ property :messagingAndChat
21
+ property :parentalControls
22
+ property :profanityOrCrudeHumor
23
+ property :ageAssurance
24
+ property :sexualContentGraphicAndNudity
25
+ property :sexualContentOrNudity
26
+ property :horrorOrFearThemes
27
+ property :matureOrSuggestiveThemes
28
+ property :unrestrictedWebAccess
29
+ property :userGeneratedContent
30
+ property :violenceCartoonOrFantasy
31
+ property :violenceRealisticProlongedGraphicOrSadistic
32
+ property :violenceRealistic
33
+ property :ageRatingOverride
34
+ property :ageRatingOverrideV2
35
+ property :koreaAgeRatingOverride
36
+ property :developerAgeRatingInfoUrl
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreDevApi
4
+ module Requests
5
+ module V1
6
+ module AlternativeDistributionDomain
7
+ class Create < Request::Body
8
+ data do
9
+ type 'alternativeDistributionDomains'
10
+
11
+ attributes do
12
+ property :domain, required: true
13
+ property :referenceName, required: true
14
+ end
15
+
16
+
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreDevApi
4
+ module Requests
5
+ module V1
6
+ module AlternativeDistributionKey
7
+ class Create < Request::Body
8
+ data do
9
+ type 'alternativeDistributionKeys'
10
+
11
+ attributes do
12
+ property :publicKey, required: true
13
+ end
14
+
15
+
16
+ relationships do
17
+ property :app
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreDevApi
4
+ module Requests
5
+ module V1
6
+ module AlternativeDistributionPackage
7
+ class Create < Request::Body
8
+ data do
9
+ type 'alternativeDistributionPackages'
10
+
11
+
12
+
13
+ relationships do
14
+ property :appStoreVersion, required: true
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreDevApi
4
+ module Requests
5
+ module V1
6
+ module AnalyticsReportRequest
7
+ class Create < Request::Body
8
+ data do
9
+ type 'analyticsReportRequests'
10
+
11
+ attributes do
12
+ property :accessType, required: true
13
+ end
14
+
15
+
16
+ relationships do
17
+ property :app, required: true
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreDevApi
4
+ module Requests
5
+ module V1
6
+ module AndroidToIosAppMappingDetail
7
+ class Create < Request::Body
8
+ data do
9
+ type 'androidToIosAppMappingDetails'
10
+
11
+ attributes do
12
+ property :packageName, required: true
13
+ property :appSigningKeyPublicCertificateSha256Fingerprints, required: true
14
+ end
15
+
16
+
17
+ relationships do
18
+ property :app, required: true
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreDevApi
4
+ module Requests
5
+ module V1
6
+ module AndroidToIosAppMappingDetail
7
+ class Update < Request::Body
8
+ data do
9
+ type 'androidToIosAppMappingDetails'
10
+
11
+ attributes do
12
+ property :packageName
13
+ property :appSigningKeyPublicCertificateSha256Fingerprints
14
+ end
15
+
16
+
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,27 +1,25 @@
1
- # frozen_string_literal: true
2
-
3
1
  module AppStoreDevApi
4
2
  module Requests
5
- module V1
6
- module App
7
- class Update < Request::Body
8
- data do
9
- id
10
- type 'apps'
11
-
12
- attributes do
13
- property :bundle_id
14
- property :content_rights_declaration
15
- property :primary_locale
16
- property :subscription_status_url
17
- property :subscription_status_url_for_sandbox
18
- property :subscription_status_url_version
19
- property :subscription_status_url_version_for_sandbox
20
-
21
- end
22
- end
3
+ module V1
4
+ module App
5
+ class Update < Request::Body
6
+ data do
7
+ id
8
+ type 'apps'
9
+ attributes do
10
+ property :accessibilityUrl
11
+ property :bundleId
12
+ property :primaryLocale
13
+ property :subscriptionStatusUrl
14
+ property :subscriptionStatusUrlVersion
15
+ property :subscriptionStatusUrlForSandbox
16
+ property :subscriptionStatusUrlVersionForSandbox
17
+ property :contentRightsDeclaration
18
+ property :streamlinedPurchasingEnabled
23
19
  end
24
20
  end
25
21
  end
26
22
  end
23
+ end
24
+ end
27
25
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppStoreDevApi
4
+ module Requests
5
+ module V1
6
+ module AppClipAdvancedExperience
7
+ class Create < Request::Body
8
+ data do
9
+ type 'appClipAdvancedExperiences'
10
+
11
+ attributes do
12
+ property :link, required: true
13
+ property :action
14
+ property :isPoweredBy, required: true
15
+ property :place
16
+ property :businessCategory
17
+ property :defaultLanguage, required: true
18
+ end
19
+
20
+
21
+ relationships do
22
+ property :appClip, required: true
23
+ property :headerImage, required: true
24
+ property :localizations, required: true
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end