@controlplane/schema 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/build/src/interfaces/accessreport.d.ts +18 -0
  2. package/build/src/interfaces/agent.d.ts +30 -0
  3. package/build/src/interfaces/auditctx.d.ts +17 -0
  4. package/build/src/interfaces/base.d.ts +37 -0
  5. package/build/src/interfaces/cloudaccount.d.ts +37 -0
  6. package/build/src/interfaces/command.d.ts +203 -0
  7. package/build/src/interfaces/config.d.ts +11 -0
  8. package/build/src/interfaces/containerstatus.d.ts +13 -0
  9. package/build/src/interfaces/cronjob.d.ts +20 -0
  10. package/build/src/interfaces/dbcluster.d.ts +42 -0
  11. package/build/src/interfaces/deployment.d.ts +33 -0
  12. package/build/src/interfaces/discovery.d.ts +22 -0
  13. package/build/src/interfaces/domain.d.ts +83 -0
  14. package/build/src/interfaces/env.d.ts +7 -0
  15. package/build/src/interfaces/envoy.d.ts +14 -0
  16. package/build/src/interfaces/envoy.js +3 -0
  17. package/build/src/interfaces/envoyAccessLog.d.ts +21 -0
  18. package/build/src/interfaces/envoyAccessLog.js +3 -0
  19. package/build/src/interfaces/envoyCluster.d.ts +64 -0
  20. package/build/src/interfaces/envoyCluster.js +3 -0
  21. package/build/src/interfaces/envoyCommon.d.ts +437 -0
  22. package/build/src/interfaces/envoyCommon.js +3 -0
  23. package/build/src/interfaces/envoyExcExtAuth.d.ts +12 -0
  24. package/build/src/interfaces/envoyExcExtAuth.js +3 -0
  25. package/build/src/interfaces/envoyHttp.d.ts +273 -0
  26. package/build/src/interfaces/envoyHttp.js +3 -0
  27. package/build/src/interfaces/envoyRateLimit.d.ts +45 -0
  28. package/build/src/interfaces/envoyRateLimit.js +3 -0
  29. package/build/src/interfaces/event.d.ts +25 -0
  30. package/build/src/interfaces/group.d.ts +20 -0
  31. package/build/src/interfaces/gvc.d.ts +57 -0
  32. package/build/src/interfaces/identity.d.ts +102 -0
  33. package/build/src/interfaces/image.d.ts +25 -0
  34. package/build/src/interfaces/links.d.ts +0 -0
  35. package/build/src/interfaces/location.d.ts +31 -0
  36. package/build/src/interfaces/memcache.d.ts +46 -0
  37. package/build/src/interfaces/mk8s.d.ts +99 -0
  38. package/build/src/interfaces/mk8sAddons.d.ts +69 -0
  39. package/build/src/interfaces/mk8sAws.d.ts +46 -0
  40. package/build/src/interfaces/mk8sCommon.d.ts +24 -0
  41. package/build/src/interfaces/mk8sEphemeral.d.ts +18 -0
  42. package/build/src/interfaces/mk8sEphemeral.js +3 -0
  43. package/build/src/interfaces/mk8sGeneric.d.ts +21 -0
  44. package/build/src/interfaces/mk8sHetzner.d.ts +42 -0
  45. package/build/src/interfaces/mk8sLambdalabs.d.ts +23 -0
  46. package/build/src/interfaces/mk8sLinode.d.ts +28 -0
  47. package/build/src/interfaces/mk8sOblivus.d.ts +13 -0
  48. package/build/src/interfaces/mk8sPaperspace.d.ts +24 -0
  49. package/build/src/interfaces/org.d.ts +78 -0
  50. package/build/src/interfaces/orgLogging.d.ts +68 -0
  51. package/build/src/interfaces/orgTracing.d.ts +4 -0
  52. package/build/src/interfaces/permissions.d.ts +14 -0
  53. package/build/src/interfaces/policy.d.ts +23 -0
  54. package/build/src/interfaces/policyMembership.d.ts +11 -0
  55. package/build/src/interfaces/port.d.ts +1 -0
  56. package/build/src/interfaces/port.js +3 -0
  57. package/build/src/interfaces/query.d.ts +27 -0
  58. package/build/src/interfaces/quota.d.ts +18 -0
  59. package/build/src/interfaces/resourcePolicy.d.ts +13 -0
  60. package/build/src/interfaces/secret.d.ts +58 -0
  61. package/build/src/interfaces/serviceaccount.d.ts +20 -0
  62. package/build/src/interfaces/spicedb.d.ts +26 -0
  63. package/build/src/interfaces/statefulSet.d.ts +5 -0
  64. package/build/src/interfaces/task.d.ts +19 -0
  65. package/build/src/interfaces/tenant.d.ts +20 -0
  66. package/build/src/interfaces/tracing.d.ts +24 -0
  67. package/build/src/interfaces/user.d.ts +24 -0
  68. package/build/src/interfaces/util.d.ts +0 -0
  69. package/build/src/interfaces/util.js +2 -0
  70. package/build/src/interfaces/volumeSet.d.ts +79 -0
  71. package/build/src/interfaces/volumeSpec.d.ts +5 -0
  72. package/build/src/interfaces/volumeSpec.js +3 -0
  73. package/build/src/interfaces/workload.d.ts +260 -0
  74. package/build/src/interfaces/workloadOptions.d.ts +18 -0
  75. package/build/src/interfaces/workloadOptions.js +3 -0
  76. package/package.json +2 -2
@@ -0,0 +1,273 @@
1
+ import { DurationRestricted, Duration, RetryPolicy, Empty, RouteMatch, RouteMatchRestricted, DataSource, GoogleCallCredentials, Struct, HeaderValue, ApiVersion, UInt32, Priority, GrpcService, ListStringMatcher, HttpStatus, FractionalPercent, RuntimeFeatureFlag, StringMatcher, RuntimeFractionalPercent, HeaderValueOption } from './envoyCommon';
2
+ export interface HttpUri {
3
+ uri: string;
4
+ cluster: string;
5
+ timeout: string | {
6
+ seconds?: number;
7
+ nanos?: number;
8
+ };
9
+ }
10
+ export interface HttpUriRestricted {
11
+ uri: string;
12
+ cluster: string;
13
+ timeout?: DurationRestricted;
14
+ }
15
+ export interface BufferSettings {
16
+ max_request_bytes?: number;
17
+ allow_partial_message?: boolean;
18
+ pack_as_bytes?: boolean;
19
+ }
20
+ export interface JwtProvider {
21
+ issuer?: string;
22
+ audiences?: string[];
23
+ claim_to_headers?: {
24
+ header_name: string;
25
+ claim_name: string;
26
+ }[];
27
+ remote_jwks?: {
28
+ http_uri?: HttpUri;
29
+ cache_duration?: Duration;
30
+ async_fetch?: {
31
+ fast_listener?: boolean;
32
+ failed_refetch_duration?: Duration;
33
+ };
34
+ retry_policy?: RetryPolicy;
35
+ };
36
+ }
37
+ export interface JwtProviderUIRestricted {
38
+ issuer?: string;
39
+ audiences?: string[];
40
+ claim_to_headers?: {
41
+ header_name: string;
42
+ claim_name: string;
43
+ }[];
44
+ remote_jwks?: {
45
+ http_uri?: HttpUriRestricted;
46
+ cache_duration?: DurationRestricted;
47
+ };
48
+ }
49
+ export interface JwtRequirement {
50
+ provider_name?: string;
51
+ provider_and_audiences?: {
52
+ provider_name?: string;
53
+ audiences?: string[];
54
+ };
55
+ requires_any?: {
56
+ requirements?: any[];
57
+ };
58
+ requires_all?: {
59
+ requirements?: any[];
60
+ };
61
+ allow_missing_or_failed?: Empty;
62
+ allow_missing?: Empty;
63
+ }
64
+ export interface JwtRequirementRestricted {
65
+ provider_name?: string;
66
+ }
67
+ export interface JwtRequirementRule {
68
+ match?: RouteMatch;
69
+ requires?: JwtRequirement;
70
+ requirement_name?: string;
71
+ }
72
+ export interface JwtRequirementRuleRestricted {
73
+ match?: RouteMatchRestricted;
74
+ requires?: JwtRequirementRestricted;
75
+ }
76
+ export interface JwtRequirementMap {
77
+ [x: string]: JwtRequirement;
78
+ }
79
+ export interface RateLimitService {
80
+ grpc_service: {
81
+ envoy_grpc?: {
82
+ cluster_name: string;
83
+ authority?: string;
84
+ retry_policy?: RetryPolicy;
85
+ };
86
+ google_grpc?: {
87
+ target_uri: string;
88
+ channel_credentials?: {
89
+ ssl_credentials?: {
90
+ root_certs?: DataSource;
91
+ private_key?: DataSource;
92
+ cert_chain?: DataSource;
93
+ };
94
+ google_default?: Empty;
95
+ };
96
+ call_credentials?: GoogleCallCredentials[];
97
+ stat_prefix: string;
98
+ credentials_factory_name?: string;
99
+ config?: Struct;
100
+ };
101
+ timeout?: string | {
102
+ seconds?: number;
103
+ nanos?: number;
104
+ };
105
+ initial_metadata?: HeaderValue[];
106
+ };
107
+ transport_api_version?: ApiVersion;
108
+ }
109
+ export interface Descriptor {
110
+ key: string;
111
+ value?: string;
112
+ rate_limit?: {
113
+ name?: string;
114
+ replaces?: {
115
+ name?: string;
116
+ }[];
117
+ unit?: 'second' | 'minute' | 'hour' | 'day';
118
+ requests_per_unit?: UInt32;
119
+ };
120
+ shadow_mode?: string;
121
+ detailed_metric?: string;
122
+ }
123
+ export interface ExtAuthz {
124
+ priority?: Priority;
125
+ excludedWorkloads?: string[];
126
+ name: 'envoy.filters.http.ext_authz';
127
+ typed_config?: {
128
+ grpc_service?: GrpcService;
129
+ http_service?: {
130
+ server_uri?: HttpUri;
131
+ path_prefix?: string;
132
+ authroization_request?: {
133
+ allowed_headers?: ListStringMatcher;
134
+ headers_to_add?: HeaderValue[];
135
+ };
136
+ authorization_response?: {
137
+ allowed_upstream_headers?: ListStringMatcher;
138
+ allowed_upstream_headers_to_append?: ListStringMatcher;
139
+ allowed_client_headers?: ListStringMatcher;
140
+ allowed_client_headers_on_success?: ListStringMatcher;
141
+ dynamic_metadata_from_headers?: ListStringMatcher;
142
+ };
143
+ };
144
+ failure_mode_allow?: boolean;
145
+ failure_mode_allow_header_add?: boolean;
146
+ with_request_body?: BufferSettings;
147
+ clear_route_cache?: boolean;
148
+ status_on_error?: HttpStatus;
149
+ metadata_context_namespaces?: string[];
150
+ typed_metadata_context_namespaces?: string[];
151
+ route_metadata_context_namespaces?: string[];
152
+ route_typed_metadata_context_namespaces?: string[];
153
+ filter_enabled?: FractionalPercent;
154
+ deny_at_disable?: RuntimeFeatureFlag;
155
+ include_peer_certificate?: boolean;
156
+ stat_prefix?: string;
157
+ bootstrap_metadata_labels_key?: string;
158
+ allowed_headers?: ListStringMatcher;
159
+ include_tls_session?: boolean;
160
+ charge_cluster_response_stats?: boolean;
161
+ transport_api_version?: ApiVersion;
162
+ "@type": 'type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz';
163
+ };
164
+ }
165
+ export interface JwtAuthn {
166
+ priority?: Priority;
167
+ excludedWorkloads?: string[];
168
+ name: 'envoy.filters.http.jwt_authn';
169
+ typed_config?: {
170
+ providers?: {
171
+ [x: string]: JwtProvider;
172
+ };
173
+ rules?: JwtRequirementRuleRestricted[];
174
+ filter_state_rules?: {
175
+ name: string;
176
+ requires?: JwtRequirementMap;
177
+ };
178
+ bypass_cors_preflight?: boolean;
179
+ requirement_map?: {
180
+ [x: string]: JwtRequirement;
181
+ };
182
+ "@type": 'type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication';
183
+ };
184
+ }
185
+ export interface GrpcWeb {
186
+ priority?: Priority;
187
+ excludedWorkloads?: string[];
188
+ name: 'envoy.filters.http.grpc_web';
189
+ typed_config?: {
190
+ "@type": 'type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb';
191
+ };
192
+ }
193
+ export interface GrpcJsonTranscoder {
194
+ priority?: Priority;
195
+ excludedWorkloads?: string[];
196
+ name: 'envoy.filters.http.grpc_json_transcoder';
197
+ typed_config?: {
198
+ proto_descriptor?: string;
199
+ proto_descriptor_bin?: any;
200
+ services?: string[];
201
+ print_options?: {
202
+ add_whitespace?: boolean;
203
+ always_print_primitive_fields?: boolean;
204
+ always_print_enums_as_ints?: boolean;
205
+ preserve_proto_field_names?: boolean;
206
+ stream_newline_delimited?: boolean;
207
+ };
208
+ match_incoming_request_route?: boolean;
209
+ ignored_query_parameters?: string[];
210
+ auto_mapping?: boolean;
211
+ ignore_unknown_query_parameters?: boolean;
212
+ convert_grpc_status?: boolean;
213
+ url_unescape_spec?: 'ALL_CHARACTERS_EXCEPT_RESERVED' | 'ALL_CHARACTERS_EXCEPT_SLASH' | 'ALL_CHARACTERS';
214
+ query_param_unescape_plus?: boolean;
215
+ match_unregistered_custom_verb?: boolean;
216
+ request_validation_options?: {
217
+ reject_unknown_method?: boolean;
218
+ reject_unknown_query_parameters?: boolean;
219
+ reject_binding_body_field_collisions?: boolean;
220
+ };
221
+ case_insensitive_enum_parsing?: boolean;
222
+ max_request_body_size?: UInt32;
223
+ max_response_body_size?: UInt32;
224
+ "@type": 'type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder';
225
+ };
226
+ }
227
+ export interface Cors {
228
+ priority?: Priority;
229
+ excludedWorkloads?: string[];
230
+ name: 'envoy.filters.http.cors';
231
+ typed_config?: {
232
+ allow_origin_string_match?: StringMatcher[];
233
+ allow_methods?: string;
234
+ allow_headers?: string;
235
+ expose_headers?: string;
236
+ max_age?: string;
237
+ allow_credentials?: boolean;
238
+ filter_enabled?: RuntimeFractionalPercent;
239
+ shadow_enabled?: RuntimeFractionalPercent;
240
+ allow_private_network_access?: boolean;
241
+ "@type": 'type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors';
242
+ };
243
+ }
244
+ export interface RateLimit {
245
+ priority?: Priority;
246
+ excludedWorkloads?: string[];
247
+ name: 'envoy.filters.http.ratelimit';
248
+ typed_config?: {
249
+ domain: string;
250
+ stage?: number;
251
+ request_type?: 'internal' | 'external' | 'both';
252
+ timeout?: Duration;
253
+ failure_mode_deny?: boolean;
254
+ rate_limited_as_resource_exhausted?: boolean;
255
+ rate_limit_service?: RateLimitService;
256
+ enable_x_ratelimit_headers?: 'OFF' | 'DRAFT_VERSION_03';
257
+ disable_x_envoy_ratelimited_header?: boolean;
258
+ rate_limited_status?: HttpStatus;
259
+ response_headers_to_add?: HeaderValueOption[];
260
+ status_on_error?: HttpStatus;
261
+ stat_prefix?: string;
262
+ "@type": 'type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit';
263
+ };
264
+ }
265
+ export interface ConnectRpc {
266
+ priority?: Priority;
267
+ excludedWorkloads?: string[];
268
+ name: 'envoy.filters.http.connect_grpc_bridge';
269
+ typed_config?: {
270
+ "@type": 'type.googleapis.com/envoy.extensions.filters.http.connect_grpc_bridge.v3.FilterConfig';
271
+ };
272
+ }
273
+ export type HttpFilter = ExtAuthz | JwtAuthn | GrpcWeb | ConnectRpc | GrpcJsonTranscoder | Cors | RateLimit;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* auto-generated */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,45 @@
1
+ import { RetryPolicy, DataSource, Empty, GoogleCallCredentials, Struct, ApiVersion, Duration, HttpStatus, HeaderValueOption } from './envoyCommon';
2
+ export interface RateLimitService {
3
+ grpc_service: {
4
+ envoy_grpc?: {
5
+ cluster_name: string;
6
+ authority?: string;
7
+ retry_policy?: RetryPolicy;
8
+ };
9
+ google_grpc?: {
10
+ target_uri: string;
11
+ channel_credentials?: {
12
+ ssl_credentials?: {
13
+ root_certs?: DataSource;
14
+ private_key?: DataSource;
15
+ cert_chain?: DataSource;
16
+ };
17
+ google_default?: Empty;
18
+ };
19
+ call_credentials?: GoogleCallCredentials[];
20
+ stat_prefix: string;
21
+ credentials_factory_name?: string;
22
+ config?: Struct;
23
+ };
24
+ timeout?: string | {
25
+ seconds?: number;
26
+ nanos?: number;
27
+ };
28
+ };
29
+ transport_api_version?: ApiVersion;
30
+ }
31
+ export interface RateLimit {
32
+ domain: string;
33
+ stage?: number;
34
+ request_type?: 'internal' | 'external' | 'both';
35
+ timeout?: Duration;
36
+ failure_mode_deny?: boolean;
37
+ rate_limited_as_resource_exhausted?: boolean;
38
+ rate_limit_service?: RateLimitService;
39
+ enable_x_ratelimit_headers?: 'OFF' | 'DRAFT_VERSION_03';
40
+ disable_x_envoy_ratelimited_header?: boolean;
41
+ rate_limited_status?: HttpStatus;
42
+ response_headers?: HeaderValueOption[];
43
+ status_on_error?: HttpStatus;
44
+ stat_prefix?: string;
45
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* auto-generated */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,25 @@
1
+ export interface EventContext {
2
+ category?: string;
3
+ component?: 'actuator' | 'dns-updater' | 'scheduler' | 'iam-broker' | 'metadata-proxy';
4
+ cloudProvider?: 'aws' | 'gcp' | 'azure' | 'linode' | 'byok';
5
+ cluster?: string;
6
+ principalLink?: string;
7
+ fingerprint?: string;
8
+ [x: string]: any;
9
+ }
10
+ export interface Event {
11
+ id?: string;
12
+ created?: Date;
13
+ kind?: string;
14
+ status: string;
15
+ pinned?: boolean;
16
+ context?: {
17
+ category?: string;
18
+ component?: 'actuator' | 'dns-updater' | 'scheduler' | 'iam-broker' | 'metadata-proxy';
19
+ cloudProvider?: 'aws' | 'gcp' | 'azure' | 'linode' | 'byok';
20
+ cluster?: string;
21
+ principalLink?: string;
22
+ fingerprint?: string;
23
+ [x: string]: any;
24
+ };
25
+ }
@@ -0,0 +1,20 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ import { Query } from './query';
3
+ export interface Group {
4
+ id?: string;
5
+ name?: Name;
6
+ kind?: Kind;
7
+ version?: number;
8
+ description?: string;
9
+ tags?: Tags;
10
+ created?: Date;
11
+ lastModified?: Date;
12
+ links?: Links;
13
+ memberLinks?: string[];
14
+ memberQuery?: Query;
15
+ identityMatcher?: {
16
+ expression: string;
17
+ language: 'jmespath' | 'javascript';
18
+ };
19
+ origin?: 'synthetic' | 'default' | 'builtin';
20
+ }
@@ -0,0 +1,57 @@
1
+ import { Query } from './query';
2
+ import { Tracing } from './tracing';
3
+ import { EnvoyFilters } from './envoy';
4
+ import { EnvVar } from './env';
5
+ import { Name, Kind, Tags, Links } from './base';
6
+ export interface GvcStatus {
7
+ [x: string]: any;
8
+ }
9
+ export interface StaticPlacement {
10
+ locationLinks?: string[];
11
+ locationQuery?: Query;
12
+ }
13
+ export interface GvcSpec {
14
+ staticPlacement?: StaticPlacement;
15
+ pullSecretLinks?: string[];
16
+ domain?: string;
17
+ tracing?: Tracing;
18
+ sidecar?: {
19
+ envoy?: EnvoyFilters;
20
+ };
21
+ env?: EnvVar[];
22
+ loadBalancer?: {
23
+ dedicated?: boolean;
24
+ trustedProxies?: number;
25
+ };
26
+ }
27
+ export interface Gvc {
28
+ id?: string;
29
+ name?: Name;
30
+ kind?: Kind;
31
+ version?: number;
32
+ description?: string;
33
+ tags?: Tags;
34
+ created?: Date;
35
+ lastModified?: Date;
36
+ links?: Links;
37
+ alias?: string;
38
+ spec?: GvcSpec;
39
+ status?: GvcStatus;
40
+ }
41
+ export interface GvcConfig {
42
+ clusters?: {
43
+ [x: string]: {
44
+ clusterId?: string;
45
+ since?: Date;
46
+ };
47
+ };
48
+ preferredClusters?: {
49
+ [x: string]: {
50
+ clusterId?: string;
51
+ };
52
+ };
53
+ loadBalancer?: {
54
+ minScale?: number;
55
+ };
56
+ thinProvision?: number;
57
+ }
@@ -0,0 +1,102 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ export type AwsRoleName = string;
3
+ export type PolicyRef = string;
4
+ export type GcpRoleName = string;
5
+ export interface AwsPolicyDocument {
6
+ Version?: string;
7
+ Statement?: {
8
+ [x: string]: any;
9
+ }[];
10
+ }
11
+ export interface AwsIdentity {
12
+ cloudAccountLink: string;
13
+ policyRefs?: PolicyRef[];
14
+ trustPolicy?: AwsPolicyDocument;
15
+ roleName?: AwsRoleName;
16
+ }
17
+ export interface GcpIdentity {
18
+ cloudAccountLink: string;
19
+ scopes?: string[];
20
+ serviceAccount?: string;
21
+ bindings?: {
22
+ resource?: string;
23
+ roles?: GcpRoleName[];
24
+ }[];
25
+ }
26
+ export interface NgsIdentity {
27
+ cloudAccountLink: string;
28
+ pub?: {
29
+ allow?: string[];
30
+ deny?: string[];
31
+ };
32
+ sub?: {
33
+ allow?: string[];
34
+ deny?: string[];
35
+ };
36
+ resp?: {
37
+ max?: number;
38
+ ttl?: string;
39
+ };
40
+ subs?: number;
41
+ data?: number;
42
+ payload?: number;
43
+ }
44
+ export interface AzureRoleAssignment {
45
+ scope?: string;
46
+ roles?: string[];
47
+ }
48
+ export interface AzureIdentity {
49
+ cloudAccountLink: string;
50
+ roleAssignments?: AzureRoleAssignment[];
51
+ }
52
+ export interface Status {
53
+ objectName?: string;
54
+ }
55
+ export interface NetworkResource {
56
+ name: Name | string;
57
+ agentLink?: string;
58
+ IPs?: string[];
59
+ FQDN?: string;
60
+ resolverIP?: string;
61
+ ports: number[];
62
+ }
63
+ export interface NativeNetworkResource {
64
+ name: Name | string;
65
+ FQDN?: string;
66
+ ports: number[];
67
+ awsPrivateLink?: {
68
+ endpointServiceName: string;
69
+ };
70
+ gcpServiceConnect?: {
71
+ targetService: string;
72
+ };
73
+ }
74
+ export interface SpicedbAccess {
75
+ clusterLink: string;
76
+ role: 'checkPermission' | 'read' | 'write';
77
+ }
78
+ export interface MemcacheAccess {
79
+ clusterLink: string;
80
+ role: 'readWrite';
81
+ }
82
+ export interface Identity {
83
+ id?: string;
84
+ name?: Name;
85
+ kind?: Kind;
86
+ version?: number;
87
+ description?: string;
88
+ tags?: Tags;
89
+ created?: Date;
90
+ lastModified?: Date;
91
+ links?: Links;
92
+ aws?: AwsIdentity;
93
+ gcp?: GcpIdentity;
94
+ azure?: AzureIdentity;
95
+ ngs?: NgsIdentity;
96
+ networkResources?: NetworkResource[];
97
+ nativeNetworkResources?: NativeNetworkResource[];
98
+ memcacheAccess?: MemcacheAccess[];
99
+ spicedbAccess?: SpicedbAccess[];
100
+ status?: Status;
101
+ gvc?: any;
102
+ }
@@ -0,0 +1,25 @@
1
+ import { Kind, Tags, Links } from './base';
2
+ export interface Image {
3
+ id?: string;
4
+ name?: string;
5
+ kind?: Kind;
6
+ version?: number;
7
+ created?: Date;
8
+ lastModified?: Date;
9
+ tags?: Tags;
10
+ links?: Links;
11
+ repository?: string;
12
+ tag?: string;
13
+ manifest?: {
14
+ [x: string]: any;
15
+ };
16
+ digest?: string;
17
+ }
18
+ export interface ImageSummary {
19
+ kind?: Kind;
20
+ links?: Links;
21
+ repositories?: {
22
+ name?: string;
23
+ tagsCount?: number;
24
+ }[];
25
+ }
File without changes
@@ -0,0 +1,31 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ export interface LocationSpec {
3
+ enabled?: boolean;
4
+ }
5
+ export interface LocationStatus {
6
+ geo?: {
7
+ lat?: number;
8
+ lon?: number;
9
+ country?: string;
10
+ state?: string;
11
+ city?: string;
12
+ continent?: string;
13
+ };
14
+ ipRanges?: string[];
15
+ }
16
+ export interface Location {
17
+ id?: string;
18
+ name?: Name;
19
+ kind?: Kind;
20
+ version?: number;
21
+ description?: string;
22
+ tags?: Tags;
23
+ created?: Date;
24
+ lastModified?: Date;
25
+ links?: Links;
26
+ origin?: 'builtin' | 'default' | 'custom';
27
+ provider?: 'aws' | 'gcp' | 'azure' | 'byok' | 'linode' | 'vultr' | 'equinix';
28
+ region?: string;
29
+ spec?: LocationSpec;
30
+ status?: LocationStatus;
31
+ }
@@ -0,0 +1,46 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ export interface MemcacheOptions {
3
+ evictionsDisabled?: boolean;
4
+ idleTimeoutSeconds?: number;
5
+ maxItemSizeKiB?: number;
6
+ maxConnections?: number;
7
+ }
8
+ export interface ClusterSpec {
9
+ nodeCount: number;
10
+ nodeSizeGiB: number;
11
+ version?: '1.6.17' | '1.5.22';
12
+ options?: {
13
+ evictionsDisabled?: boolean;
14
+ idleTimeoutSeconds?: number;
15
+ maxItemSizeKiB?: number;
16
+ maxConnections?: number;
17
+ };
18
+ locations?: string[];
19
+ }
20
+ export interface ClusterStatus {
21
+ [x: string]: any;
22
+ }
23
+ export interface MemcacheCluster {
24
+ id?: string;
25
+ name?: Name;
26
+ kind?: Kind;
27
+ version?: number;
28
+ description?: string;
29
+ tags?: Tags;
30
+ created?: Date;
31
+ lastModified?: Date;
32
+ links?: Links;
33
+ spec: {
34
+ nodeCount: number;
35
+ nodeSizeGiB: number;
36
+ version?: '1.6.17' | '1.5.22';
37
+ options?: {
38
+ evictionsDisabled?: boolean;
39
+ idleTimeoutSeconds?: number;
40
+ maxItemSizeKiB?: number;
41
+ maxConnections?: number;
42
+ };
43
+ locations?: string[];
44
+ };
45
+ status?: ClusterStatus;
46
+ }