-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject.proto
More file actions
104 lines (89 loc) · 2.82 KB
/
project.proto
File metadata and controls
104 lines (89 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/** Service responsible for coordinating projects */
syntax = "proto3";
package workflow;
option go_package = "./pb";
service project {
rpc Get (ProjectGetRequest) returns (ProjectGetResponse) {}
rpc List (ProjectListRequest) returns (ProjectListResponse) {}
rpc SetTags (SetTagsRequest) returns (SetTagsResponse) {}
rpc SetContact (SetContactRequest) returns (SetContactResponse) {}
}
/**
* Project status information
*/
message Project {
string ID = 1; // Machine identifier of the project.
string Name = 2; // Human readable name of the project.
string Version = 3; // The current version released to production for this project.
ProjectEnvironments Environments = 4; // A list of environments.
repeated string Tags = 5; // A list of tags assigned to this environment.
string Contact = 6; // Primary contact information for this project.
ProjectResourceTotals ResourceTotals = 7; // Total resources being utilised by all environments on this project.
string Namespace = 8; // Kubernetes namespace which resources for this project reside.
ProjectRegistry Registry = 9; // Container registry information for pushing and pulling images.
string Size = 10;
}
/**
* Project environment status information
*/
message ProjectEnvironments {
string Prod = 1; // The name of the production environment.
repeated string NonProd = 2; // Non production environments for this project.
}
/**
* Total resource utilisation across all environments for a project.
*/
message ProjectResourceTotals {
int32 Replicas = 1; // Number of replicas utilising the total resources.
int64 CPU = 2; // CPU utilised by all environments on this project.
int64 Memory = 3; // Memory utilised by all environments on this project.
}
/**
* Get project information
*/
message ProjectGetRequest {}
/**
* Returns project information
*/
message ProjectGetResponse {
string Namespace = 1; // Will be deprecated in a future release.
ProjectRegistry Registry = 2; // Will be deprecated in a future release.
Project Project = 3; // Project status information.
}
/**
* Project registry information
*/
message ProjectRegistry {
string Application = 1; // Application registry information
string MySQL = 2; // MySQL registry information
}
/**
* Request a list of projects from a Skpr platform cluster.
*/
message ProjectListRequest {}
/**
* A list of all projects on this Skpr platform cluster.
*/
message ProjectListResponse {
repeated Project Projects = 1;
}
/**
* Input for setting tags on a Project.
*/
message SetTagsRequest {
repeated string Tags = 1; // Tags to set on the Project.
}
/**
* Output when setting tags.
*/
message SetTagsResponse {}
/**
* Input for setting contact details on a Project.
*/
message SetContactRequest {
string Contact = 1;
}
/**
* Output provided when setting contact details.
*/
message SetContactResponse {}