This commit adds protobuf files and tooling surrounding generating APIs and datatypes.pull/204/head
parent
e8277595f5
commit
b096a2e7e5
6 changed files with 143 additions and 0 deletions
@ -0,0 +1,21 @@ |
||||
version: v1 |
||||
plugins: |
||||
- name: go |
||||
out: gen/go |
||||
opt: |
||||
- paths=source_relative |
||||
- name: go-grpc |
||||
out: gen/go |
||||
opt: |
||||
- paths=source_relative |
||||
- name: grpc-gateway |
||||
out: gen/go |
||||
opt: |
||||
- paths=source_relative |
||||
- generate_unbound_methods=true |
||||
# - name: gorm |
||||
# out: gen/go |
||||
# opt: |
||||
# - paths=source_relative,enums=string,gateway=true |
||||
- name: openapiv2 |
||||
out: gen/openapiv2 |
@ -0,0 +1,24 @@ |
||||
# Generated by buf. DO NOT EDIT. |
||||
version: v1 |
||||
deps: |
||||
- remote: buf.build |
||||
owner: googleapis |
||||
repository: googleapis |
||||
branch: main |
||||
commit: cd101b0abb7b4404a0b1ecc1afd4ce10 |
||||
digest: b1-H4GHwHVHcJBbVPg-Cdmnx812reFCDQws_QoQ0W2hYQA= |
||||
create_time: 2021-10-23T15:04:06.087748Z |
||||
- remote: buf.build |
||||
owner: grpc-ecosystem |
||||
repository: grpc-gateway |
||||
branch: main |
||||
commit: ff83506eb9cc4cf8972f49ce87e6ed3e |
||||
digest: b1-iLPHgLaoeWWinMiXXqPnxqE4BThtY3eSbswVGh9GOGI= |
||||
create_time: 2021-10-23T16:26:52.283938Z |
||||
- remote: buf.build |
||||
owner: ufoundit-dev |
||||
repository: protoc-gen-gorm |
||||
branch: main |
||||
commit: e2ecbaa0d37843298104bd29fd866df8 |
||||
digest: b1-SV9yKH_8P-IKTOlHZxP-bb0ALANYeEqH_mtPA0EWfLc= |
||||
create_time: 2021-10-08T06:03:05.64876Z |
@ -0,0 +1,12 @@ |
||||
version: v1 |
||||
lint: |
||||
use: |
||||
- DEFAULT |
||||
breaking: |
||||
use: |
||||
- FILE |
||||
|
||||
deps: |
||||
- buf.build/googleapis/googleapis |
||||
- buf.build/grpc-ecosystem/grpc-gateway |
||||
- buf.build/ufoundit-dev/protoc-gen-gorm |
@ -0,0 +1,71 @@ |
||||
syntax = "proto3"; |
||||
package headscale.v1; |
||||
option go_package = "github.com/juanfont/headscale/gen/go/v1"; |
||||
|
||||
import "google/protobuf/timestamp.proto"; |
||||
import "google/api/annotations.proto"; |
||||
import "options/gorm.proto"; |
||||
|
||||
enum RegisterMethod { |
||||
AUTH_KEY = 0; |
||||
CLI = 1; |
||||
OIDC = 2; |
||||
} |
||||
|
||||
message Namespace { |
||||
string Name = 1; |
||||
} |
||||
|
||||
message PreAuthKey { |
||||
uint64 ID = 1; |
||||
string Key = 2; |
||||
uint32 NamespaceID = 3; |
||||
Namespace Namespace = 4; |
||||
bool Reusable = 5; |
||||
bool Ephemeral = 6; |
||||
bool Used = 7; |
||||
|
||||
google.protobuf.Timestamp CreatedAt = 8; |
||||
google.protobuf.Timestamp Expiration = 9; |
||||
} |
||||
|
||||
message GetMachineRequest { |
||||
uint64 machine_id = 1; |
||||
} |
||||
|
||||
message Machine { |
||||
option(gorm.opts).ormable = true; |
||||
uint64 ID = 1; |
||||
string MachineKey = 2; |
||||
string NodeKey = 3; |
||||
string DiscoKey = 4; |
||||
string IPAddress = 5; |
||||
string Name = 6; |
||||
uint32 NamespaceID = 7; |
||||
|
||||
bool Registered = 8; |
||||
RegisterMethod RegisterMethod = 9; |
||||
uint32 AuthKeyID = 10; |
||||
PreAuthKey AuthKey = 11; |
||||
|
||||
google.protobuf.Timestamp LastSeen = 12; |
||||
google.protobuf.Timestamp LastSuccessfulUpdate = 13; |
||||
google.protobuf.Timestamp Expiry = 14; |
||||
|
||||
bytes HostInfo = 15; |
||||
bytes Endpoints = 16; |
||||
bytes EnabledRoutes = 17; |
||||
|
||||
google.protobuf.Timestamp CreatedAt = 18; |
||||
google.protobuf.Timestamp UpdatedAt = 19; |
||||
google.protobuf.Timestamp DeletedAt = 20; |
||||
} |
||||
|
||||
// Gin Router will prefix this with /api/v1 |
||||
service HeadscaleService { |
||||
rpc GetMachine(GetMachineRequest) returns(Machine) { |
||||
option(google.api.http) = { |
||||
get : "/api/v1/machine/{machine_id}" |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,12 @@ |
||||
//go:build tools
|
||||
// +build tools
|
||||
|
||||
package tools |
||||
|
||||
import ( |
||||
_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway" |
||||
_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2" |
||||
_ "github.com/infobloxopen/protoc-gen-gorm" |
||||
_ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" |
||||
_ "google.golang.org/protobuf/cmd/protoc-gen-go" |
||||
) |
Loading…
Reference in new issue