planetscale 0.2.0 → 0.3.3

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 (365) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +21 -0
  3. data/.github/workflows/ci.yml +9 -1
  4. data/.github/workflows/gem-push.yml +9 -2
  5. data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
  6. data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +56 -3
  7. data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +205 -172
  8. data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
  9. data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
  10. data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
  11. data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
  12. data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
  13. data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
  14. data/README.md +11 -8
  15. data/controller.go +24 -26
  16. data/go.mod +4 -3
  17. data/go.sum +42 -27
  18. data/lib/generators/planetscale/install_generator.rb +8 -6
  19. data/lib/planetscale/version.rb +1 -1
  20. data/lib/planetscale.rb +14 -15
  21. data/planetscale.gemspec +2 -2
  22. data/proxy/planetscale-darwin.h +1 -1
  23. data/proxy/planetscale-darwin.so +0 -0
  24. data/proxy/planetscale-linux.h +1 -1
  25. data/proxy/planetscale-linux.so +0 -0
  26. data/proxy.go +1 -5
  27. metadata +6 -342
  28. data/vendor/github.com/armon/circbuf/.gitignore +0 -22
  29. data/vendor/github.com/armon/circbuf/LICENSE +0 -20
  30. data/vendor/github.com/armon/circbuf/README.md +0 -28
  31. data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
  32. data/vendor/github.com/armon/circbuf/go.mod +0 -1
  33. data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
  34. data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
  35. data/vendor/github.com/golang/protobuf/LICENSE +0 -28
  36. data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
  37. data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
  38. data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
  39. data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
  40. data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
  41. data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
  42. data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
  43. data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
  44. data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
  45. data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
  46. data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
  47. data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
  48. data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
  49. data/vendor/github.com/gorilla/mux/LICENSE +0 -27
  50. data/vendor/github.com/gorilla/mux/README.md +0 -805
  51. data/vendor/github.com/gorilla/mux/doc.go +0 -306
  52. data/vendor/github.com/gorilla/mux/go.mod +0 -3
  53. data/vendor/github.com/gorilla/mux/middleware.go +0 -74
  54. data/vendor/github.com/gorilla/mux/mux.go +0 -606
  55. data/vendor/github.com/gorilla/mux/regexp.go +0 -388
  56. data/vendor/github.com/gorilla/mux/route.go +0 -736
  57. data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
  58. data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
  59. data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
  60. data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
  61. data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
  62. data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
  63. data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
  64. data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
  65. data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
  66. data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
  67. data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
  68. data/vendor/github.com/pkg/errors/.gitignore +0 -24
  69. data/vendor/github.com/pkg/errors/.travis.yml +0 -10
  70. data/vendor/github.com/pkg/errors/LICENSE +0 -23
  71. data/vendor/github.com/pkg/errors/Makefile +0 -44
  72. data/vendor/github.com/pkg/errors/README.md +0 -59
  73. data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
  74. data/vendor/github.com/pkg/errors/errors.go +0 -288
  75. data/vendor/github.com/pkg/errors/go113.go +0 -38
  76. data/vendor/github.com/pkg/errors/stack.go +0 -177
  77. data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
  78. data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -258
  79. data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -142
  80. data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -305
  81. data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -131
  82. data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
  83. data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -78
  84. data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
  85. data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -467
  86. data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
  87. data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
  88. data/vendor/go.uber.org/atomic/.gitignore +0 -12
  89. data/vendor/go.uber.org/atomic/.travis.yml +0 -27
  90. data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
  91. data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
  92. data/vendor/go.uber.org/atomic/Makefile +0 -78
  93. data/vendor/go.uber.org/atomic/README.md +0 -63
  94. data/vendor/go.uber.org/atomic/bool.go +0 -81
  95. data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
  96. data/vendor/go.uber.org/atomic/doc.go +0 -23
  97. data/vendor/go.uber.org/atomic/duration.go +0 -82
  98. data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
  99. data/vendor/go.uber.org/atomic/error.go +0 -51
  100. data/vendor/go.uber.org/atomic/error_ext.go +0 -39
  101. data/vendor/go.uber.org/atomic/float64.go +0 -76
  102. data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
  103. data/vendor/go.uber.org/atomic/gen.go +0 -26
  104. data/vendor/go.uber.org/atomic/go.mod +0 -8
  105. data/vendor/go.uber.org/atomic/go.sum +0 -9
  106. data/vendor/go.uber.org/atomic/int32.go +0 -102
  107. data/vendor/go.uber.org/atomic/int64.go +0 -102
  108. data/vendor/go.uber.org/atomic/nocmp.go +0 -35
  109. data/vendor/go.uber.org/atomic/string.go +0 -54
  110. data/vendor/go.uber.org/atomic/string_ext.go +0 -43
  111. data/vendor/go.uber.org/atomic/uint32.go +0 -102
  112. data/vendor/go.uber.org/atomic/uint64.go +0 -102
  113. data/vendor/go.uber.org/atomic/value.go +0 -31
  114. data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
  115. data/vendor/go.uber.org/multierr/.gitignore +0 -4
  116. data/vendor/go.uber.org/multierr/.travis.yml +0 -23
  117. data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
  118. data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
  119. data/vendor/go.uber.org/multierr/Makefile +0 -42
  120. data/vendor/go.uber.org/multierr/README.md +0 -23
  121. data/vendor/go.uber.org/multierr/error.go +0 -449
  122. data/vendor/go.uber.org/multierr/glide.yaml +0 -8
  123. data/vendor/go.uber.org/multierr/go.mod +0 -8
  124. data/vendor/go.uber.org/multierr/go.sum +0 -11
  125. data/vendor/go.uber.org/multierr/go113.go +0 -52
  126. data/vendor/go.uber.org/zap/.codecov.yml +0 -17
  127. data/vendor/go.uber.org/zap/.gitignore +0 -32
  128. data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
  129. data/vendor/go.uber.org/zap/.travis.yml +0 -23
  130. data/vendor/go.uber.org/zap/CHANGELOG.md +0 -432
  131. data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
  132. data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -81
  133. data/vendor/go.uber.org/zap/FAQ.md +0 -156
  134. data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
  135. data/vendor/go.uber.org/zap/Makefile +0 -63
  136. data/vendor/go.uber.org/zap/README.md +0 -134
  137. data/vendor/go.uber.org/zap/array.go +0 -320
  138. data/vendor/go.uber.org/zap/buffer/buffer.go +0 -123
  139. data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
  140. data/vendor/go.uber.org/zap/checklicense.sh +0 -17
  141. data/vendor/go.uber.org/zap/config.go +0 -264
  142. data/vendor/go.uber.org/zap/doc.go +0 -113
  143. data/vendor/go.uber.org/zap/encoder.go +0 -79
  144. data/vendor/go.uber.org/zap/error.go +0 -80
  145. data/vendor/go.uber.org/zap/field.go +0 -539
  146. data/vendor/go.uber.org/zap/flag.go +0 -39
  147. data/vendor/go.uber.org/zap/glide.yaml +0 -34
  148. data/vendor/go.uber.org/zap/global.go +0 -168
  149. data/vendor/go.uber.org/zap/global_go112.go +0 -26
  150. data/vendor/go.uber.org/zap/global_prego112.go +0 -26
  151. data/vendor/go.uber.org/zap/go.mod +0 -13
  152. data/vendor/go.uber.org/zap/go.sum +0 -56
  153. data/vendor/go.uber.org/zap/http_handler.go +0 -81
  154. data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
  155. data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
  156. data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
  157. data/vendor/go.uber.org/zap/level.go +0 -132
  158. data/vendor/go.uber.org/zap/logger.go +0 -344
  159. data/vendor/go.uber.org/zap/options.go +0 -140
  160. data/vendor/go.uber.org/zap/sink.go +0 -161
  161. data/vendor/go.uber.org/zap/stacktrace.go +0 -85
  162. data/vendor/go.uber.org/zap/sugar.go +0 -304
  163. data/vendor/go.uber.org/zap/time.go +0 -27
  164. data/vendor/go.uber.org/zap/writer.go +0 -99
  165. data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
  166. data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
  167. data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
  168. data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
  169. data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
  170. data/vendor/go.uber.org/zap/zapcore/error.go +0 -115
  171. data/vendor/go.uber.org/zap/zapcore/field.go +0 -227
  172. data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
  173. data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
  174. data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
  175. data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
  176. data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
  177. data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
  178. data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
  179. data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
  180. data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
  181. data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -123
  182. data/vendor/golang.org/x/net/AUTHORS +0 -3
  183. data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
  184. data/vendor/golang.org/x/net/LICENSE +0 -27
  185. data/vendor/golang.org/x/net/PATENTS +0 -22
  186. data/vendor/golang.org/x/net/context/context.go +0 -56
  187. data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
  188. data/vendor/golang.org/x/net/context/go17.go +0 -73
  189. data/vendor/golang.org/x/net/context/go19.go +0 -21
  190. data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
  191. data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
  192. data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
  193. data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
  194. data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
  195. data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
  196. data/vendor/golang.org/x/oauth2/LICENSE +0 -27
  197. data/vendor/golang.org/x/oauth2/README.md +0 -36
  198. data/vendor/golang.org/x/oauth2/go.mod +0 -9
  199. data/vendor/golang.org/x/oauth2/go.sum +0 -361
  200. data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
  201. data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
  202. data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
  203. data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
  204. data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
  205. data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
  206. data/vendor/golang.org/x/oauth2/token.go +0 -178
  207. data/vendor/golang.org/x/oauth2/transport.go +0 -89
  208. data/vendor/google.golang.org/appengine/LICENSE +0 -202
  209. data/vendor/google.golang.org/appengine/internal/api.go +0 -678
  210. data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
  211. data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
  212. data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
  213. data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
  214. data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
  215. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
  216. data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
  217. data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
  218. data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
  219. data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
  220. data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
  221. data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
  222. data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
  223. data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
  224. data/vendor/google.golang.org/appengine/internal/main.go +0 -16
  225. data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
  226. data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
  227. data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
  228. data/vendor/google.golang.org/appengine/internal/net.go +0 -56
  229. data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
  230. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
  231. data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
  232. data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
  233. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
  234. data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
  235. data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
  236. data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
  237. data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
  238. data/vendor/google.golang.org/protobuf/LICENSE +0 -27
  239. data/vendor/google.golang.org/protobuf/PATENTS +0 -22
  240. data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
  241. data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
  242. data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
  243. data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
  244. data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
  245. data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
  246. data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
  247. data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
  248. data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
  249. data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
  250. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
  251. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
  252. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
  253. data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
  254. data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
  255. data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
  256. data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
  257. data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
  258. data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
  259. data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
  260. data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
  261. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
  262. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
  263. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
  264. data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
  265. data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
  266. data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
  267. data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
  268. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
  269. data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
  270. data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
  271. data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
  272. data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
  273. data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
  274. data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
  275. data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
  276. data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
  277. data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
  278. data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
  279. data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
  280. data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
  281. data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
  282. data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
  283. data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
  284. data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
  285. data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
  286. data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
  287. data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
  288. data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
  289. data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
  290. data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
  291. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
  292. data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
  293. data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
  294. data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
  295. data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
  296. data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
  297. data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
  298. data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
  299. data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
  300. data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
  301. data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
  302. data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
  303. data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
  304. data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
  305. data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
  306. data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
  307. data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
  308. data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
  309. data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
  310. data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
  311. data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
  312. data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
  313. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
  314. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
  315. data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
  316. data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
  317. data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
  318. data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
  319. data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
  320. data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
  321. data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
  322. data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
  323. data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
  324. data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
  325. data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
  326. data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
  327. data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
  328. data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
  329. data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
  330. data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
  331. data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
  332. data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
  333. data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
  334. data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
  335. data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
  336. data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
  337. data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
  338. data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
  339. data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
  340. data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
  341. data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
  342. data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
  343. data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
  344. data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
  345. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
  346. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
  347. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
  348. data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
  349. data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
  350. data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
  351. data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
  352. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
  353. data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
  354. data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
  355. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
  356. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
  357. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
  358. data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
  359. data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
  360. data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
  361. data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
  362. data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
  363. data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
  364. data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
  365. data/vendor/modules.txt +0 -79
@@ -1,177 +0,0 @@
1
- package errors
2
-
3
- import (
4
- "fmt"
5
- "io"
6
- "path"
7
- "runtime"
8
- "strconv"
9
- "strings"
10
- )
11
-
12
- // Frame represents a program counter inside a stack frame.
13
- // For historical reasons if Frame is interpreted as a uintptr
14
- // its value represents the program counter + 1.
15
- type Frame uintptr
16
-
17
- // pc returns the program counter for this frame;
18
- // multiple frames may have the same PC value.
19
- func (f Frame) pc() uintptr { return uintptr(f) - 1 }
20
-
21
- // file returns the full path to the file that contains the
22
- // function for this Frame's pc.
23
- func (f Frame) file() string {
24
- fn := runtime.FuncForPC(f.pc())
25
- if fn == nil {
26
- return "unknown"
27
- }
28
- file, _ := fn.FileLine(f.pc())
29
- return file
30
- }
31
-
32
- // line returns the line number of source code of the
33
- // function for this Frame's pc.
34
- func (f Frame) line() int {
35
- fn := runtime.FuncForPC(f.pc())
36
- if fn == nil {
37
- return 0
38
- }
39
- _, line := fn.FileLine(f.pc())
40
- return line
41
- }
42
-
43
- // name returns the name of this function, if known.
44
- func (f Frame) name() string {
45
- fn := runtime.FuncForPC(f.pc())
46
- if fn == nil {
47
- return "unknown"
48
- }
49
- return fn.Name()
50
- }
51
-
52
- // Format formats the frame according to the fmt.Formatter interface.
53
- //
54
- // %s source file
55
- // %d source line
56
- // %n function name
57
- // %v equivalent to %s:%d
58
- //
59
- // Format accepts flags that alter the printing of some verbs, as follows:
60
- //
61
- // %+s function name and path of source file relative to the compile time
62
- // GOPATH separated by \n\t (<funcname>\n\t<path>)
63
- // %+v equivalent to %+s:%d
64
- func (f Frame) Format(s fmt.State, verb rune) {
65
- switch verb {
66
- case 's':
67
- switch {
68
- case s.Flag('+'):
69
- io.WriteString(s, f.name())
70
- io.WriteString(s, "\n\t")
71
- io.WriteString(s, f.file())
72
- default:
73
- io.WriteString(s, path.Base(f.file()))
74
- }
75
- case 'd':
76
- io.WriteString(s, strconv.Itoa(f.line()))
77
- case 'n':
78
- io.WriteString(s, funcname(f.name()))
79
- case 'v':
80
- f.Format(s, 's')
81
- io.WriteString(s, ":")
82
- f.Format(s, 'd')
83
- }
84
- }
85
-
86
- // MarshalText formats a stacktrace Frame as a text string. The output is the
87
- // same as that of fmt.Sprintf("%+v", f), but without newlines or tabs.
88
- func (f Frame) MarshalText() ([]byte, error) {
89
- name := f.name()
90
- if name == "unknown" {
91
- return []byte(name), nil
92
- }
93
- return []byte(fmt.Sprintf("%s %s:%d", name, f.file(), f.line())), nil
94
- }
95
-
96
- // StackTrace is stack of Frames from innermost (newest) to outermost (oldest).
97
- type StackTrace []Frame
98
-
99
- // Format formats the stack of Frames according to the fmt.Formatter interface.
100
- //
101
- // %s lists source files for each Frame in the stack
102
- // %v lists the source file and line number for each Frame in the stack
103
- //
104
- // Format accepts flags that alter the printing of some verbs, as follows:
105
- //
106
- // %+v Prints filename, function, and line number for each Frame in the stack.
107
- func (st StackTrace) Format(s fmt.State, verb rune) {
108
- switch verb {
109
- case 'v':
110
- switch {
111
- case s.Flag('+'):
112
- for _, f := range st {
113
- io.WriteString(s, "\n")
114
- f.Format(s, verb)
115
- }
116
- case s.Flag('#'):
117
- fmt.Fprintf(s, "%#v", []Frame(st))
118
- default:
119
- st.formatSlice(s, verb)
120
- }
121
- case 's':
122
- st.formatSlice(s, verb)
123
- }
124
- }
125
-
126
- // formatSlice will format this StackTrace into the given buffer as a slice of
127
- // Frame, only valid when called with '%s' or '%v'.
128
- func (st StackTrace) formatSlice(s fmt.State, verb rune) {
129
- io.WriteString(s, "[")
130
- for i, f := range st {
131
- if i > 0 {
132
- io.WriteString(s, " ")
133
- }
134
- f.Format(s, verb)
135
- }
136
- io.WriteString(s, "]")
137
- }
138
-
139
- // stack represents a stack of program counters.
140
- type stack []uintptr
141
-
142
- func (s *stack) Format(st fmt.State, verb rune) {
143
- switch verb {
144
- case 'v':
145
- switch {
146
- case st.Flag('+'):
147
- for _, pc := range *s {
148
- f := Frame(pc)
149
- fmt.Fprintf(st, "\n%+v", f)
150
- }
151
- }
152
- }
153
- }
154
-
155
- func (s *stack) StackTrace() StackTrace {
156
- f := make([]Frame, len(*s))
157
- for i := 0; i < len(f); i++ {
158
- f[i] = Frame((*s)[i])
159
- }
160
- return f
161
- }
162
-
163
- func callers() *stack {
164
- const depth = 32
165
- var pcs [depth]uintptr
166
- n := runtime.Callers(3, pcs[:])
167
- var st stack = pcs[0:n]
168
- return &st
169
- }
170
-
171
- // funcname removes the path prefix component of a function's name reported by func.Name().
172
- func funcname(name string) string {
173
- i := strings.LastIndex(name, "/")
174
- name = name[i+1:]
175
- i = strings.Index(name, ".")
176
- return name[i+1:]
177
- }
@@ -1,139 +0,0 @@
1
- package planetscale
2
-
3
- import (
4
- "context"
5
- "fmt"
6
- "net/http"
7
- "time"
8
-
9
- "github.com/pkg/errors"
10
- )
11
-
12
- type Backup struct {
13
- Name string `json:"name"`
14
- State string `json:"state"`
15
- Size int64 `json:"size"`
16
- CreatedAt time.Time `json:"created_at"`
17
- UpdatedAt time.Time `json:"updated_at"`
18
- StartedAt time.Time `json:"started_at"`
19
- ExpiresAt time.Time `json:"expires_at"`
20
- CompletedAt time.Time `json:"completed_at"`
21
- }
22
-
23
- type backupsResponse struct {
24
- Backups []*Backup `json:"data"`
25
- }
26
-
27
- type CreateBackupRequest struct {
28
- Organization string `json:"-"`
29
- Database string `json:"-"`
30
- Branch string `json:"-"`
31
- }
32
-
33
- type ListBackupsRequest struct {
34
- Organization string
35
- Database string
36
- Branch string
37
- }
38
-
39
- type GetBackupRequest struct {
40
- Organization string
41
- Database string
42
- Branch string
43
- Backup string
44
- }
45
-
46
- type DeleteBackupRequest struct {
47
- Organization string
48
- Database string
49
- Branch string
50
- Backup string
51
- }
52
-
53
- // BackupsService is an interface for communicating with the PlanetScale
54
- // backup API endpoint.
55
- type BackupsService interface {
56
- Create(context.Context, *CreateBackupRequest) (*Backup, error)
57
- List(context.Context, *ListBackupsRequest) ([]*Backup, error)
58
- Get(context.Context, *GetBackupRequest) (*Backup, error)
59
- Delete(context.Context, *DeleteBackupRequest) error
60
- }
61
-
62
- type backupsService struct {
63
- client *Client
64
- }
65
-
66
- var _ BackupsService = &backupsService{}
67
-
68
- func NewBackupsService(client *Client) *backupsService {
69
- return &backupsService{
70
- client: client,
71
- }
72
- }
73
-
74
- // Creates a new backup for a branch.
75
- func (d *backupsService) Create(ctx context.Context, createReq *CreateBackupRequest) (*Backup, error) {
76
- path := backupsAPIPath(createReq.Organization, createReq.Database, createReq.Branch)
77
- req, err := d.client.newRequest(http.MethodPost, path, nil)
78
- if err != nil {
79
- return nil, errors.Wrap(err, "error creating http request")
80
- }
81
-
82
- backup := &Backup{}
83
- if err := d.client.do(ctx, req, &backup); err != nil {
84
- return nil, err
85
- }
86
-
87
- return backup, nil
88
- }
89
-
90
- // Returns a single backup for a branch.
91
- func (d *backupsService) Get(ctx context.Context, getReq *GetBackupRequest) (*Backup, error) {
92
- path := backupAPIPath(getReq.Organization, getReq.Database, getReq.Branch, getReq.Backup)
93
- req, err := d.client.newRequest(http.MethodGet, path, nil)
94
- if err != nil {
95
- return nil, errors.Wrap(err, "error creating http request")
96
- }
97
-
98
- backup := &Backup{}
99
- if err := d.client.do(ctx, req, &backup); err != nil {
100
- return nil, err
101
- }
102
-
103
- return backup, nil
104
- }
105
-
106
- // Returns all of the backups for a branch.
107
- func (d *backupsService) List(ctx context.Context, listReq *ListBackupsRequest) ([]*Backup, error) {
108
- req, err := d.client.newRequest(http.MethodGet, backupsAPIPath(listReq.Organization, listReq.Database, listReq.Branch), nil)
109
- if err != nil {
110
- return nil, errors.Wrap(err, "error creating http request")
111
- }
112
-
113
- backups := &backupsResponse{}
114
- if err := d.client.do(ctx, req, &backups); err != nil {
115
- return nil, err
116
- }
117
-
118
- return backups.Backups, nil
119
- }
120
-
121
- // Deletes a branch backup.
122
- func (d *backupsService) Delete(ctx context.Context, deleteReq *DeleteBackupRequest) error {
123
- path := backupAPIPath(deleteReq.Organization, deleteReq.Database, deleteReq.Branch, deleteReq.Backup)
124
- req, err := d.client.newRequest(http.MethodDelete, path, nil)
125
- if err != nil {
126
- return errors.Wrap(err, "error creating http request")
127
- }
128
-
129
- err = d.client.do(ctx, req, nil)
130
- return err
131
- }
132
-
133
- func backupsAPIPath(org, db, branch string) string {
134
- return fmt.Sprintf("%s/backups", databaseBranchAPIPath(org, db, branch))
135
- }
136
-
137
- func backupAPIPath(org, db, branch, backup string) string {
138
- return fmt.Sprintf("%s/%s", backupsAPIPath(org, db, branch), backup)
139
- }
@@ -1,258 +0,0 @@
1
- package planetscale
2
-
3
- import (
4
- "context"
5
- "fmt"
6
- "net/http"
7
- "time"
8
-
9
- "github.com/pkg/errors"
10
- )
11
-
12
- // DatabaseBranch represents a database branch.
13
- type DatabaseBranch struct {
14
- Name string `json:"name"`
15
- Notes string `json:"notes"`
16
- ParentBranch string `json:"parent_branch"`
17
- CreatedAt time.Time `json:"created_at"`
18
- UpdatedAt time.Time `json:"updated_at"`
19
- Status string `json:"status,omitempty"`
20
- }
21
-
22
- type databaseBranchesResponse struct {
23
- Branches []*DatabaseBranch `json:"data"`
24
- }
25
-
26
- // CreateDatabaseBranchRequest encapsulates the request for creating a new
27
- // database branch
28
- type CreateDatabaseBranchRequest struct {
29
- Organization string `json:"-"`
30
- Database string `json:"-"`
31
- Branch *DatabaseBranch
32
- }
33
-
34
- // ListDatabaseBranchesRequest encapsulates the request for listing the branches
35
- // of a database.
36
- type ListDatabaseBranchesRequest struct {
37
- Organization string
38
- Database string
39
- }
40
-
41
- // GetDatabaseBranchRequest encapsulates the request for getting a single
42
- // database branch for a database.
43
- type GetDatabaseBranchRequest struct {
44
- Organization string
45
- Database string
46
- Branch string
47
- }
48
-
49
- // DeleteDatabaseRequest encapsulates the request for deleting a database branch
50
- // from a database.
51
- type DeleteDatabaseBranchRequest struct {
52
- Organization string
53
- Database string
54
- Branch string
55
- }
56
-
57
- // GetDatabaseBranchStatusRequest encapsulates the request for getting the status
58
- // of a specific database branch.
59
- type GetDatabaseBranchStatusRequest struct {
60
- Organization string
61
- Database string
62
- Branch string
63
- }
64
-
65
- // DiffBranchRequest encapsulates a request for getting the diff for a branch.
66
- type DiffBranchRequest struct {
67
- Organization string `json:"-"`
68
- Database string `json:"-"`
69
- Branch string `json:"-"`
70
- }
71
-
72
- // BranchSchemaRequest encapsulates a request for getting a branch's schema.
73
- type BranchSchemaRequest struct {
74
- Organization string `json:"-"`
75
- Database string `json:"-"`
76
- Branch string `json:"-"`
77
- }
78
-
79
- // RefreshSchemaRequest reflects the request needed to refresh a schema
80
- // snapshot on a database branch.
81
- type RefreshSchemaRequest struct {
82
- Organization string `json:"-"`
83
- Database string `json:"-"`
84
- Branch string `json:"-"`
85
- }
86
-
87
- // DatabaseBranchesService is an interface for communicating with the PlanetScale
88
- // Database Branch API endpoint.
89
- type DatabaseBranchesService interface {
90
- Create(context.Context, *CreateDatabaseBranchRequest) (*DatabaseBranch, error)
91
- List(context.Context, *ListDatabaseBranchesRequest) ([]*DatabaseBranch, error)
92
- Get(context.Context, *GetDatabaseBranchRequest) (*DatabaseBranch, error)
93
- Delete(context.Context, *DeleteDatabaseBranchRequest) error
94
- GetStatus(context.Context, *GetDatabaseBranchStatusRequest) (*DatabaseBranchStatus, error)
95
- Diff(context.Context, *DiffBranchRequest) ([]*Diff, error)
96
- Schema(context.Context, *BranchSchemaRequest) ([]*Diff, error)
97
- RefreshSchema(context.Context, *RefreshSchemaRequest) error
98
- }
99
-
100
- type databaseBranchesService struct {
101
- client *Client
102
- }
103
-
104
- type DatabaseBranchCredentials struct {
105
- GatewayHost string `json:"mysql_gateway_host"`
106
- GatewayPort int `json:"mysql_gateway_port"`
107
- User string `json:"mysql_gateway_user"`
108
- Password string `json:"mysql_gateway_pass"`
109
- }
110
-
111
- // DatabaseBranchStatus represents the status of a PlanetScale database branch.
112
- type DatabaseBranchStatus struct {
113
- Ready bool `json:"ready"`
114
- Credentials DatabaseBranchCredentials `json:"credentials"`
115
- }
116
-
117
- var _ DatabaseBranchesService = &databaseBranchesService{}
118
-
119
- func NewDatabaseBranchesService(client *Client) *databaseBranchesService {
120
- return &databaseBranchesService{
121
- client: client,
122
- }
123
- }
124
-
125
- func (d *databaseBranchesService) Diff(ctx context.Context, diffReq *DiffBranchRequest) ([]*Diff, error) {
126
- path := fmt.Sprintf("%s/diff", databaseBranchAPIPath(diffReq.Organization, diffReq.Database, diffReq.Branch))
127
- req, err := d.client.newRequest(http.MethodGet, path, nil)
128
- if err != nil {
129
- return nil, errors.Wrap(err, "error creating http request")
130
- }
131
-
132
- diffs := &diffResponse{}
133
- if err := d.client.do(ctx, req, &diffs); err != nil {
134
- return nil, err
135
- }
136
-
137
- return diffs.Diffs, nil
138
- }
139
-
140
- // schemaResponse returns the schemas
141
- type schemaResponse struct {
142
- Schemas []*Diff `json:"data"`
143
- }
144
-
145
- func (d *databaseBranchesService) Schema(ctx context.Context, schemaReq *BranchSchemaRequest) ([]*Diff, error) {
146
- path := fmt.Sprintf("%s/schema", databaseBranchAPIPath(schemaReq.Organization, schemaReq.Database, schemaReq.Branch))
147
- req, err := d.client.newRequest(http.MethodGet, path, nil)
148
- if err != nil {
149
- return nil, errors.Wrap(err, "error creating http request")
150
- }
151
-
152
- schemas := &schemaResponse{}
153
- if err := d.client.do(ctx, req, &schemas); err != nil {
154
- return nil, err
155
- }
156
-
157
- return schemas.Schemas, nil
158
- }
159
-
160
- // Create creates a new branch for an organization's database.
161
- func (d *databaseBranchesService) Create(ctx context.Context, createReq *CreateDatabaseBranchRequest) (*DatabaseBranch, error) {
162
- path := databaseBranchesAPIPath(createReq.Organization, createReq.Database)
163
-
164
- req, err := d.client.newRequest(http.MethodPost, path, createReq.Branch)
165
- if err != nil {
166
- return nil, errors.Wrap(err, "error creating request for branch database")
167
- }
168
-
169
- dbBranch := &DatabaseBranch{}
170
- if err := d.client.do(ctx, req, &dbBranch); err != nil {
171
- return nil, err
172
- }
173
-
174
- return dbBranch, nil
175
- }
176
-
177
- // Get returns a database branch for an organization's database.
178
- func (d *databaseBranchesService) Get(ctx context.Context, getReq *GetDatabaseBranchRequest) (*DatabaseBranch, error) {
179
- path := fmt.Sprintf("%s/%s", databaseBranchesAPIPath(getReq.Organization, getReq.Database), getReq.Branch)
180
- req, err := d.client.newRequest(http.MethodGet, path, nil)
181
- if err != nil {
182
- return nil, errors.Wrap(err, "error creating http request")
183
- }
184
-
185
- dbBranch := &DatabaseBranch{}
186
- if err := d.client.do(ctx, req, &dbBranch); err != nil {
187
- return nil, err
188
- }
189
-
190
- return dbBranch, nil
191
- }
192
-
193
- // List returns all of the branches for an organization's
194
- // database.
195
- func (d *databaseBranchesService) List(ctx context.Context, listReq *ListDatabaseBranchesRequest) ([]*DatabaseBranch, error) {
196
- req, err := d.client.newRequest(http.MethodGet, databaseBranchesAPIPath(listReq.Organization, listReq.Database), nil)
197
- if err != nil {
198
- return nil, errors.Wrap(err, "error creating http request")
199
- }
200
-
201
- dbBranches := &databaseBranchesResponse{}
202
- if err := d.client.do(ctx, req, &dbBranches); err != nil {
203
- return nil, err
204
- }
205
-
206
- return dbBranches.Branches, nil
207
- }
208
-
209
- // Delete deletes a database branch from an organization's database.
210
- func (d *databaseBranchesService) Delete(ctx context.Context, deleteReq *DeleteDatabaseBranchRequest) error {
211
- path := fmt.Sprintf("%s/%s", databaseBranchesAPIPath(deleteReq.Organization, deleteReq.Database), deleteReq.Branch)
212
- req, err := d.client.newRequest(http.MethodDelete, path, nil)
213
- if err != nil {
214
- return errors.Wrap(err, "error creating request for delete branch")
215
- }
216
-
217
- err = d.client.do(ctx, req, nil)
218
- return err
219
- }
220
-
221
- // Status returns the status of a specific database branch
222
- func (d *databaseBranchesService) GetStatus(ctx context.Context, statusReq *GetDatabaseBranchStatusRequest) (*DatabaseBranchStatus, error) {
223
- path := fmt.Sprintf("%s/%s/status", databaseBranchesAPIPath(statusReq.Organization, statusReq.Database), statusReq.Branch)
224
- req, err := d.client.newRequest(http.MethodGet, path, nil)
225
- if err != nil {
226
- return nil, errors.Wrap(err, "error creating request for branch status")
227
- }
228
-
229
- status := &DatabaseBranchStatus{}
230
- if err := d.client.do(ctx, req, &status); err != nil {
231
- return nil, err
232
- }
233
-
234
- return status, nil
235
- }
236
-
237
- // RefreshSchema refreshes the schema for a
238
- func (d *databaseBranchesService) RefreshSchema(ctx context.Context, refreshReq *RefreshSchemaRequest) error {
239
- path := fmt.Sprintf("%s/%s/refresh-schema", databaseBranchesAPIPath(refreshReq.Organization, refreshReq.Database), refreshReq.Branch)
240
- req, err := d.client.newRequest(http.MethodPost, path, nil)
241
- if err != nil {
242
- return errors.Wrap(err, "error creating http request")
243
- }
244
-
245
- if err := d.client.do(ctx, req, nil); err != nil {
246
- return err
247
- }
248
-
249
- return nil
250
- }
251
-
252
- func databaseBranchesAPIPath(org, db string) string {
253
- return fmt.Sprintf("%s/%s/branches", databasesAPIPath(org), db)
254
- }
255
-
256
- func databaseBranchAPIPath(org, db, branch string) string {
257
- return fmt.Sprintf("%s/%s", databaseBranchesAPIPath(org, db), branch)
258
- }
@@ -1,142 +0,0 @@
1
- package planetscale
2
-
3
- import (
4
- "bytes"
5
- "context"
6
- "crypto/rand"
7
- "crypto/rsa"
8
- "crypto/tls"
9
- "crypto/x509"
10
- "crypto/x509/pkix"
11
- "encoding/pem"
12
- "errors"
13
- "fmt"
14
- "net/http"
15
- )
16
-
17
- type CreateCertificateRequest struct {
18
- Organization string
19
- DatabaseName string
20
- Branch string
21
-
22
- // PrivateKey is used to sign the Certificate Sign Request (CSR).
23
- PrivateKey *rsa.PrivateKey
24
- }
25
-
26
- type CertificatesService interface {
27
- Create(context.Context, *CreateCertificateRequest) (*Cert, error)
28
- }
29
-
30
- type Cert struct {
31
- ClientCert tls.Certificate
32
- CACert *x509.Certificate
33
- RemoteAddr string
34
- Ports RemotePorts
35
- }
36
-
37
- type RemotePorts struct {
38
- Proxy int
39
- MySQL int
40
- }
41
-
42
- type certificatesService struct {
43
- client *Client
44
- }
45
-
46
- var _ CertificatesService = &certificatesService{}
47
-
48
- func NewCertsService(client *Client) *certificatesService {
49
- return &certificatesService{
50
- client: client,
51
- }
52
- }
53
-
54
- func (c *certificatesService) Create(ctx context.Context, r *CreateCertificateRequest) (*Cert, error) {
55
- cn := fmt.Sprintf("%s/%s/%s", r.Organization, r.DatabaseName, r.Branch)
56
- subj := pkix.Name{
57
- CommonName: cn,
58
- }
59
-
60
- template := x509.CertificateRequest{
61
- Version: 1,
62
- Subject: subj,
63
- SignatureAlgorithm: x509.SHA256WithRSA,
64
- }
65
-
66
- csrBytes, err := x509.CreateCertificateRequest(rand.Reader, &template, r.PrivateKey)
67
- if err != nil {
68
- return nil, fmt.Errorf("unable to create csr: %s", err)
69
- }
70
-
71
- var buf bytes.Buffer
72
- err = pem.Encode(&buf, &pem.Block{Type: "CERTIFICATE REQUEST", Bytes: csrBytes})
73
- if err != nil {
74
- return nil, fmt.Errorf("unable to encode the CSR to PEM: %s", err)
75
- }
76
-
77
- var certReq = struct {
78
- CSR string `json:"csr"`
79
- }{
80
- CSR: buf.String(),
81
- }
82
-
83
- req, err := c.client.newRequest(
84
- http.MethodPost,
85
- fmt.Sprintf("%s/%s/branches/%s/create-certificate",
86
- databasesAPIPath(r.Organization),
87
- r.DatabaseName,
88
- r.Branch,
89
- ),
90
- certReq,
91
- )
92
- if err != nil {
93
- return nil, fmt.Errorf("error creating request for create certificates: %s", err)
94
- }
95
-
96
- var cr struct {
97
- Certificate string `json:"certificate"`
98
- CertificateChain string `json:"certificate_chain"`
99
- RemoteAddr string `json:"remote_addr"`
100
- Ports map[string]int `json:"ports"`
101
- }
102
-
103
- err = c.client.do(ctx, req, &cr)
104
- if err != nil {
105
- return nil, err
106
- }
107
-
108
- caCert, err := parseCert(cr.CertificateChain)
109
- if err != nil {
110
- return nil, fmt.Errorf("parsing certificate chain failed: %s", err)
111
- }
112
-
113
- privateKey := pem.EncodeToMemory(
114
- &pem.Block{
115
- Type: "RSA PRIVATE KEY",
116
- Bytes: x509.MarshalPKCS1PrivateKey(r.PrivateKey),
117
- },
118
- )
119
-
120
- clientCert, err := tls.X509KeyPair([]byte(cr.Certificate), privateKey)
121
- if err != nil {
122
- return nil, fmt.Errorf("parsing client certificate failed: %s", err)
123
- }
124
-
125
- return &Cert{
126
- ClientCert: clientCert,
127
- CACert: caCert,
128
- RemoteAddr: cr.RemoteAddr,
129
- Ports: RemotePorts{
130
- Proxy: cr.Ports["proxy"],
131
- MySQL: cr.Ports["mysql-tls"],
132
- },
133
- }, nil
134
- }
135
-
136
- func parseCert(pemCert string) (*x509.Certificate, error) {
137
- bl, _ := pem.Decode([]byte(pemCert))
138
- if bl == nil {
139
- return nil, errors.New("invalid PEM: " + pemCert)
140
- }
141
- return x509.ParseCertificate(bl.Bytes)
142
- }