-
Notifications
You must be signed in to change notification settings - Fork 203
/
cloudfunctions2function_types.go
389 lines (310 loc) · 16.2 KB
/
cloudfunctions2function_types.go
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ----------------------------------------------------------------------------
//
// *** AUTO GENERATED CODE *** AUTO GENERATED CODE ***
//
// ----------------------------------------------------------------------------
//
// This file is automatically generated by Config Connector and manual
// changes will be clobbered when the file is regenerated.
//
// ----------------------------------------------------------------------------
// *** DISCLAIMER ***
// Config Connector's go-client for CRDs is currently in ALPHA, which means
// that future versions of the go-client may include breaking changes.
// Please try it out and give us feedback!
package v1alpha1
import (
"github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type FunctionBuildConfig struct {
/* The Cloud Build name of the latest successful
deployment of the function. */
// +optional
Build *string `json:"build,omitempty"`
/* User managed repository created in Artifact Registry optionally with a customer managed encryption key. */
// +optional
DockerRepository *string `json:"dockerRepository,omitempty"`
/* The name of the function (as defined in source code) that will be executed.
Defaults to the resource name suffix, if not specified. For backward
compatibility, if function with given name is not found, then the system
will try to use function named "function". For Node.js this is name of a
function exported by the module specified in source_location. */
// +optional
EntryPoint *string `json:"entryPoint,omitempty"`
/* User-provided build-time environment variables for the function. */
// +optional
EnvironmentVariables map[string]string `json:"environmentVariables,omitempty"`
/* The runtime in which to run the function. Required when deploying a new
function, optional when updating an existing function. */
// +optional
Runtime *string `json:"runtime,omitempty"`
/* The location of the function source code. */
// +optional
Source *FunctionSource `json:"source,omitempty"`
/* Name of the Cloud Build Custom Worker Pool that should be used to build the function. */
// +optional
WorkerPool *string `json:"workerPool,omitempty"`
}
type FunctionEventFilters struct {
/* 'Required. The name of a CloudEvents attribute.
Currently, only a subset of attributes are supported for filtering. Use the 'gcloud eventarc providers describe' command to learn more about events and their attributes.
Do not filter for the 'type' attribute here, as this is already achieved by the resource's 'event_type' attribute. */
Attribute string `json:"attribute"`
/* Optional. The operator used for matching the events with the value of
the filter. If not specified, only events that have an exact key-value
pair specified in the filter are matched.
The only allowed value is 'match-path-pattern'.
[See documentation on path patterns here](https://cloud.google.com/eventarc/docs/path-patterns)'. */
// +optional
Operator *string `json:"operator,omitempty"`
/* Required. The value for the attribute.
If the operator field is set as 'match-path-pattern', this value can be a path pattern instead of an exact value. */
Value string `json:"value"`
}
type FunctionEventTrigger struct {
/* Criteria used to filter events. */
// +optional
EventFilters []FunctionEventFilters `json:"eventFilters,omitempty"`
/* Required. The type of event to observe. */
// +optional
EventType *string `json:"eventType,omitempty"`
/* The name of a Pub/Sub topic in the same project that will be used
as the transport topic for the event delivery. */
// +optional
PubsubTopic *string `json:"pubsubTopic,omitempty"`
/* Describes the retry policy in case of function's execution failure.
Retried execution is charged as any other execution. Possible values: ["RETRY_POLICY_UNSPECIFIED", "RETRY_POLICY_DO_NOT_RETRY", "RETRY_POLICY_RETRY"]. */
// +optional
RetryPolicy *string `json:"retryPolicy,omitempty"`
/* The email of the service account for this function. */
// +optional
ServiceAccountEmail *string `json:"serviceAccountEmail,omitempty"`
/* Output only. The resource name of the Eventarc trigger. */
// +optional
Trigger *string `json:"trigger,omitempty"`
/* The region that the trigger will be in. The trigger will only receive
events originating in this region. It can be the same
region as the function, a different region or multi-region, or the global
region. If not provided, defaults to the same region as the function. */
// +optional
TriggerRegion *string `json:"triggerRegion,omitempty"`
}
type FunctionRepoSource struct {
/* Regex matching branches to build. */
// +optional
BranchName *string `json:"branchName,omitempty"`
/* Regex matching tags to build. */
// +optional
CommitSha *string `json:"commitSha,omitempty"`
/* Directory, relative to the source root, in which to run the build. */
// +optional
Dir *string `json:"dir,omitempty"`
/* Only trigger a build if the revision regex does
NOT match the revision regex. */
// +optional
InvertRegex *bool `json:"invertRegex,omitempty"`
/* Immutable. ID of the project that owns the Cloud Source Repository. If omitted, the
project ID requesting the build is assumed. */
// +optional
ProjectId *string `json:"projectId,omitempty"`
/* Name of the Cloud Source Repository. */
// +optional
RepoName *string `json:"repoName,omitempty"`
/* Regex matching tags to build. */
// +optional
TagName *string `json:"tagName,omitempty"`
}
type FunctionSecretEnvironmentVariables struct {
/* Name of the environment variable. */
Key string `json:"key"`
/* Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. */
ProjectId string `json:"projectId"`
/* Name of the secret in secret manager (not the full resource name). */
Secret string `json:"secret"`
/* Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start. */
Version string `json:"version"`
}
type FunctionSecretVolumes struct {
/* The path within the container to mount the secret volume. For example, setting the mountPath as /etc/secrets would mount the secret value files under the /etc/secrets directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets. */
MountPath string `json:"mountPath"`
/* Project identifier (preferrably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function. */
ProjectId string `json:"projectId"`
/* Name of the secret in secret manager (not the full resource name). */
Secret string `json:"secret"`
/* List of secret versions to mount for this secret. If empty, the latest version of the secret will be made available in a file named after the secret under the mount point.'. */
// +optional
Versions []FunctionVersions `json:"versions,omitempty"`
}
type FunctionServiceConfig struct {
/* Whether 100% of traffic is routed to the latest revision. Defaults to true. */
// +optional
AllTrafficOnLatestRevision *bool `json:"allTrafficOnLatestRevision,omitempty"`
/* The number of CPUs used in a single container instance. Default value is calculated from available memory. */
// +optional
AvailableCpu *string `json:"availableCpu,omitempty"`
/* The amount of memory available for a function.
Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is
supplied the value is interpreted as bytes. */
// +optional
AvailableMemory *string `json:"availableMemory,omitempty"`
/* Environment variables that shall be available during function execution. */
// +optional
EnvironmentVariables map[string]string `json:"environmentVariables,omitempty"`
/* URIs of the Service deployed. */
// +optional
GcfUri *string `json:"gcfUri,omitempty"`
/* Available ingress settings. Defaults to "ALLOW_ALL" if unspecified. Default value: "ALLOW_ALL" Possible values: ["ALLOW_ALL", "ALLOW_INTERNAL_ONLY", "ALLOW_INTERNAL_AND_GCLB"]. */
// +optional
IngressSettings *string `json:"ingressSettings,omitempty"`
/* The limit on the maximum number of function instances that may coexist at a
given time. */
// +optional
MaxInstanceCount *int64 `json:"maxInstanceCount,omitempty"`
/* Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1. */
// +optional
MaxInstanceRequestConcurrency *int64 `json:"maxInstanceRequestConcurrency,omitempty"`
/* The limit on the minimum number of function instances that may coexist at a
given time. */
// +optional
MinInstanceCount *int64 `json:"minInstanceCount,omitempty"`
/* Secret environment variables configuration. */
// +optional
SecretEnvironmentVariables []FunctionSecretEnvironmentVariables `json:"secretEnvironmentVariables,omitempty"`
/* Secret volumes configuration. */
// +optional
SecretVolumes []FunctionSecretVolumes `json:"secretVolumes,omitempty"`
/* Name of the service associated with a Function. */
// +optional
Service *string `json:"service,omitempty"`
/* The email of the service account for this function. */
// +optional
ServiceAccountEmail *string `json:"serviceAccountEmail,omitempty"`
/* The function execution timeout. Execution is considered failed and
can be terminated if the function is not completed at the end of the
timeout period. Defaults to 60 seconds. */
// +optional
TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty"`
/* URI of the Service deployed. */
// +optional
Uri *string `json:"uri,omitempty"`
/* The Serverless VPC Access connector that this cloud function can connect to. */
// +optional
VpcConnector *string `json:"vpcConnector,omitempty"`
/* Available egress settings. Possible values: ["VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED", "PRIVATE_RANGES_ONLY", "ALL_TRAFFIC"]. */
// +optional
VpcConnectorEgressSettings *string `json:"vpcConnectorEgressSettings,omitempty"`
}
type FunctionSource struct {
/* If provided, get the source from this location in a Cloud Source Repository. */
// +optional
RepoSource *FunctionRepoSource `json:"repoSource,omitempty"`
/* If provided, get the source from this location in Google Cloud Storage. */
// +optional
StorageSource *FunctionStorageSource `json:"storageSource,omitempty"`
}
type FunctionStorageSource struct {
/* Google Cloud Storage bucket containing the source. */
// +optional
Bucket *string `json:"bucket,omitempty"`
/* Google Cloud Storage generation for the object. If the generation
is omitted, the latest generation will be used. */
// +optional
Generation *int64 `json:"generation,omitempty"`
/* Google Cloud Storage object containing the source. */
// +optional
Object *string `json:"object,omitempty"`
}
type FunctionVersions struct {
/* Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mountPath as '/etc/secrets' and path as secret_foo would mount the secret value file at /etc/secrets/secret_foo. */
Path string `json:"path"`
/* Version of the secret (version number or the string 'latest'). It is preferable to use latest version with secret volumes as secret value changes are reflected immediately. */
Version string `json:"version"`
}
type CloudFunctions2FunctionSpec struct {
/* Describes the Build step of the function that builds a container
from the given source. */
// +optional
BuildConfig *FunctionBuildConfig `json:"buildConfig,omitempty"`
/* User-provided description of a function. */
// +optional
Description *string `json:"description,omitempty"`
/* An Eventarc trigger managed by Google Cloud Functions that fires events in
response to a condition in another service. */
// +optional
EventTrigger *FunctionEventTrigger `json:"eventTrigger,omitempty"`
/* Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function resources.
It must match the pattern projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}. */
// +optional
KmsKeyName *string `json:"kmsKeyName,omitempty"`
/* Immutable. The location of this cloud function. */
Location string `json:"location"`
/* The project that this resource belongs to. */
ProjectRef v1alpha1.ResourceRef `json:"projectRef"`
/* Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */
// +optional
ResourceID *string `json:"resourceID,omitempty"`
/* Describes the Service being deployed. */
// +optional
ServiceConfig *FunctionServiceConfig `json:"serviceConfig,omitempty"`
}
type CloudFunctions2FunctionStatus struct {
/* Conditions represent the latest available observations of the
CloudFunctions2Function's current state. */
Conditions []v1alpha1.Condition `json:"conditions,omitempty"`
/* The environment the function is hosted on. */
// +optional
Environment *string `json:"environment,omitempty"`
/* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */
// +optional
ObservedGeneration *int64 `json:"observedGeneration,omitempty"`
/* Describes the current state of the function. */
// +optional
State *string `json:"state,omitempty"`
/* The last update timestamp of a Cloud Function. */
// +optional
UpdateTime *string `json:"updateTime,omitempty"`
/* Output only. The deployed url for the function. */
// +optional
Url *string `json:"url,omitempty"`
}
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:resource:categories=gcp,shortName=gcpcloudfunctions2function;gcpcloudfunctions2functions
// +kubebuilder:subresource:status
// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/stability-level=alpha";"cnrm.cloud.google.com/system=true";"cnrm.cloud.google.com/tf2crd=true"
// +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date"
// +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded"
// +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'"
// +kubebuilder:printcolumn:name="Status Age",JSONPath=".status.conditions[?(@.type=='Ready')].lastTransitionTime",type="date",description="The last transition time for the value in 'Status'"
// CloudFunctions2Function is the Schema for the cloudfunctions2 API
// +k8s:openapi-gen=true
type CloudFunctions2Function struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec CloudFunctions2FunctionSpec `json:"spec,omitempty"`
Status CloudFunctions2FunctionStatus `json:"status,omitempty"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// CloudFunctions2FunctionList contains a list of CloudFunctions2Function
type CloudFunctions2FunctionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []CloudFunctions2Function `json:"items"`
}
func init() {
SchemeBuilder.Register(&CloudFunctions2Function{}, &CloudFunctions2FunctionList{})
}