Init commit
This commit is contained in:
		
							
								
								
									
										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;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user