Init commit
This commit is contained in:
commit
d106158785
6
.protolint.yaml
Normal file
6
.protolint.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Lint directives.
|
||||||
|
lint:
|
||||||
|
rules_option:
|
||||||
|
max_line_length:
|
||||||
|
max_chars: 120
|
||||||
|
tab_chars: 2
|
11
Containerfile
Normal file
11
Containerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM alpine:3.16.2
|
||||||
|
|
||||||
|
RUN apk add --no-cache git make musl-dev go protobuf protobuf-dev
|
||||||
|
ENV GOROOT /usr/lib/go
|
||||||
|
ENV GOPATH /go
|
||||||
|
ENV PATH /go/bin:$PATH
|
||||||
|
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
|
||||||
|
RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1
|
||||||
|
|
||||||
|
CMD [ "protoc -v" ]
|
||||||
|
|
36
Makefile
Normal file
36
Makefile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# ---------------------------------------------------------------------
|
||||||
|
# -- Which container tool to use
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
CONTAINER_TOOL ?= docker
|
||||||
|
|
||||||
|
protoc-docs-gen:
|
||||||
|
protoc \
|
||||||
|
--proto_path=./proto \
|
||||||
|
--doc_out=. \
|
||||||
|
--doc_opt=markdown,readme.md \
|
||||||
|
$$(find ./proto -type f -iname "*.proto")
|
||||||
|
|
||||||
|
docker-docs-gen:
|
||||||
|
$(CONTAINER_TOOL) run --rm \
|
||||||
|
-v $$(pwd):/out \
|
||||||
|
-v $$(pwd)/proto:/proto \
|
||||||
|
pseudomuto/protoc-gen-doc --doc_opt=markdown,README.md --proto_path=proto \
|
||||||
|
$$(find proto -type f -iname "*.proto")
|
||||||
|
|
||||||
|
docker-lint:
|
||||||
|
$(CONTAINER_TOOL) run --rm \
|
||||||
|
-v $$(pwd):/workspace \
|
||||||
|
--workdir /workspace \
|
||||||
|
yoheimuta/protolint lint \
|
||||||
|
$$(find . -type f -iname "*.proto")
|
||||||
|
|
||||||
|
docker-protobuf:
|
||||||
|
$(CONTAINER_TOOL) build -t gogen . && \
|
||||||
|
$(CONTAINER_TOOL) run --rm \
|
||||||
|
-v $$(pwd)/proto:/proto \
|
||||||
|
-v $$(pwd)/pkg:/pkg \
|
||||||
|
gogen \
|
||||||
|
protoc --go_out=/pkg/ --go_opt=paths=source_relative \
|
||||||
|
--go-grpc_out=/pkg/ --go-grpc_opt=paths=source_relative \
|
||||||
|
--proto_path=proto/proto \
|
||||||
|
$$(find proto -type f -iname "*.proto")
|
108
README.md
Normal file
108
README.md
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
# Protocol Documentation
|
||||||
|
<a name="top"></a>
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [proto/environments_v1.proto](#proto_environments_v1-proto)
|
||||||
|
- [EnvironmentData](#environments-EnvironmentData)
|
||||||
|
- [EnvironmentFull](#environments-EnvironmentFull)
|
||||||
|
- [EnvironmentId](#environments-EnvironmentId)
|
||||||
|
|
||||||
|
- [Environments](#environments-Environments)
|
||||||
|
|
||||||
|
- [Scalar Value Types](#scalar-value-types)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="proto_environments_v1-proto"></a>
|
||||||
|
<p align="right"><a href="#top">Top</a></p>
|
||||||
|
|
||||||
|
## proto/environments_v1.proto
|
||||||
|
This file has messages for describing environments
|
||||||
|
|
||||||
|
|
||||||
|
<a name="environments-EnvironmentData"></a>
|
||||||
|
|
||||||
|
### EnvironmentData
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| name | [string](#string) | | Environment name |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="environments-EnvironmentFull"></a>
|
||||||
|
|
||||||
|
### EnvironmentFull
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| id | [EnvironmentId](#environments-EnvironmentId) | | |
|
||||||
|
| data | [EnvironmentData](#environments-EnvironmentData) | | |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="environments-EnvironmentId"></a>
|
||||||
|
|
||||||
|
### EnvironmentId
|
||||||
|
Represents a environment UUID only
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| id | [string](#string) | | Contour ID: UUID |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="environments-Environments"></a>
|
||||||
|
|
||||||
|
### Environments
|
||||||
|
Service for handling environments
|
||||||
|
|
||||||
|
| Method Name | Request Type | Response Type | Description |
|
||||||
|
| ----------- | ------------ | ------------- | ------------|
|
||||||
|
| Create | [EnvironmentData](#environments-EnvironmentData) | [EnvironmentData](#environments-EnvironmentData) | Should be used to create a new environment / Depending on the implementations, it should / create a working k8s cluster / Hetzner: |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Scalar Value Types
|
||||||
|
|
||||||
|
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
|
||||||
|
| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
|
||||||
|
| <a name="double" /> double | | double | double | float | float64 | double | float | Float |
|
||||||
|
| <a name="float" /> float | | float | float | float | float32 | float | float | Float |
|
||||||
|
| <a name="int32" /> int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
|
||||||
|
| <a name="int64" /> int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
|
||||||
|
| <a name="uint32" /> uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
|
||||||
|
| <a name="uint64" /> uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
|
||||||
|
| <a name="sint32" /> sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
|
||||||
|
| <a name="sint64" /> sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
|
||||||
|
| <a name="fixed32" /> fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
|
||||||
|
| <a name="fixed64" /> fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
|
||||||
|
| <a name="sfixed32" /> sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
|
||||||
|
| <a name="sfixed64" /> sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
|
||||||
|
| <a name="bool" /> bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
|
||||||
|
| <a name="string" /> string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
|
||||||
|
| <a name="bytes" /> bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |
|
||||||
|
|
32
proto/proto/environments_v1.proto
Normal file
32
proto/proto/environments_v1.proto
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/// This file has messages for describing environments
|
||||||
|
syntax = "proto3";
|
||||||
|
package environments;
|
||||||
|
import "google/protobuf/empty.proto";
|
||||||
|
option go_package = "git.badhouseplants.net/badhouseplants/softplayer-go-proto/pkg/environments";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service for handling environments
|
||||||
|
*/
|
||||||
|
service Environments {
|
||||||
|
rpc Create(EnvironmentData) returns (EnvironmentFull) {}
|
||||||
|
rpc Update(EnvironmentFull) returns (EnvironmentFull) {}
|
||||||
|
rpc Delete(EnvironmentFull) returns (google.protobuf.Empty) {}
|
||||||
|
rpc Get(EnvironmentId) returns (EnvironmentFull) {}
|
||||||
|
rpc List(google.protobuf.Empty) returns (stream EnvironmentFull) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a environment UUID only
|
||||||
|
*/
|
||||||
|
message EnvironmentId {
|
||||||
|
string id = 1; // Contour ID: UUID
|
||||||
|
}
|
||||||
|
|
||||||
|
message EnvironmentData {
|
||||||
|
string name = 1; // Environment name
|
||||||
|
}
|
||||||
|
|
||||||
|
message EnvironmentFull {
|
||||||
|
EnvironmentId id = 1;
|
||||||
|
EnvironmentData data = 2;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user