planetscale 0.2.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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
- }