github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/pkg/webview/view.swagger.json (about) 1 { 2 "swagger": "2.0", 3 "info": { 4 "title": "pkg/webview/view.proto", 5 "version": "version not set" 6 }, 7 "consumes": [ 8 "application/json" 9 ], 10 "produces": [ 11 "application/json" 12 ], 13 "paths": { 14 "/api/snapshot/new": { 15 "post": { 16 "operationId": "ViewService_UploadSnapshot", 17 "responses": { 18 "200": { 19 "description": "A successful response.", 20 "schema": { 21 "$ref": "#/definitions/webviewUploadSnapshotResponse" 22 } 23 }, 24 "default": { 25 "description": "An unexpected error response.", 26 "schema": { 27 "$ref": "#/definitions/runtimeError" 28 } 29 } 30 }, 31 "parameters": [ 32 { 33 "name": "body", 34 "in": "body", 35 "required": true, 36 "schema": { 37 "$ref": "#/definitions/webviewSnapshot" 38 } 39 } 40 ], 41 "tags": [ 42 "ViewService" 43 ] 44 } 45 }, 46 "/api/view": { 47 "get": { 48 "operationId": "ViewService_GetView", 49 "responses": { 50 "200": { 51 "description": "A successful response.", 52 "schema": { 53 "$ref": "#/definitions/webviewView" 54 } 55 }, 56 "default": { 57 "description": "An unexpected error response.", 58 "schema": { 59 "$ref": "#/definitions/runtimeError" 60 } 61 } 62 }, 63 "tags": [ 64 "ViewService" 65 ] 66 } 67 }, 68 "/websocket/ack": { 69 "post": { 70 "operationId": "WebsocketService_AckWebsocket", 71 "responses": { 72 "200": { 73 "description": "A successful response.", 74 "schema": { 75 "$ref": "#/definitions/webviewAckWebsocketResponse" 76 } 77 }, 78 "default": { 79 "description": "An unexpected error response.", 80 "schema": { 81 "$ref": "#/definitions/runtimeError" 82 } 83 } 84 }, 85 "parameters": [ 86 { 87 "name": "body", 88 "in": "body", 89 "required": true, 90 "schema": { 91 "$ref": "#/definitions/webviewAckWebsocketRequest" 92 } 93 } 94 ], 95 "tags": [ 96 "WebsocketService" 97 ] 98 } 99 } 100 }, 101 "definitions": { 102 "corev1alpha1TiltBuild": { 103 "type": "object", 104 "properties": { 105 "version": { 106 "type": "string", 107 "title": "A semantic version string.\n+optional" 108 }, 109 "commitSHA": { 110 "type": "string", 111 "title": "The Git digest of the commit this binary was built at.\n+optional" 112 }, 113 "date": { 114 "type": "string", 115 "title": "A human-readable string representing when the binary was built.\n+optional" 116 }, 117 "dev": { 118 "type": "boolean", 119 "title": "Indicates whether this is a development build (true) or an official release (false).\n+optional" 120 } 121 }, 122 "description": "Information about the running tilt binary." 123 }, 124 "corev1alpha1VersionSettings": { 125 "type": "object", 126 "properties": { 127 "checkUpdates": { 128 "type": "boolean", 129 "title": "Whether version updates have been enabled/disabled from the Tiltfile.\n+optional" 130 } 131 }, 132 "description": "Information about how the Tilt binary handles updates." 133 }, 134 "protobufAny": { 135 "type": "object", 136 "properties": { 137 "type_url": { 138 "type": "string" 139 }, 140 "value": { 141 "type": "string", 142 "format": "byte" 143 } 144 } 145 }, 146 "runtimeError": { 147 "type": "object", 148 "properties": { 149 "error": { 150 "type": "string" 151 }, 152 "code": { 153 "type": "integer", 154 "format": "int32" 155 }, 156 "message": { 157 "type": "string" 158 }, 159 "details": { 160 "type": "array", 161 "items": { 162 "$ref": "#/definitions/protobufAny" 163 } 164 } 165 } 166 }, 167 "v1FieldsV1": { 168 "type": "object", 169 "properties": { 170 "Raw": { 171 "type": "string", 172 "format": "byte", 173 "description": "Raw is the underlying serialization of this object." 174 } 175 }, 176 "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set,\nor a string representing a sub-field or item. The string will follow one of these four formats:\n'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map\n'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item\n'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list\n'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values\nIf a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff\n+protobuf.options.(gogoproto.goproto_stringer)=false" 177 }, 178 "v1ManagedFieldsEntry": { 179 "type": "object", 180 "properties": { 181 "manager": { 182 "type": "string", 183 "description": "Manager is an identifier of the workflow managing these fields." 184 }, 185 "operation": { 186 "type": "string", 187 "description": "Operation is the type of operation which lead to this ManagedFieldsEntry being created.\nThe only valid values for this field are 'Apply' and 'Update'." 188 }, 189 "apiVersion": { 190 "type": "string", 191 "description": "APIVersion defines the version of this resource that this field set\napplies to. The format is \"group/version\" just like the top-level\nAPIVersion field. It is necessary to track the version of a field\nset because it cannot be automatically converted." 192 }, 193 "time": { 194 "type": "string", "format": "date-time", 195 "title": "Time is the timestamp of when the ManagedFields entry was added. The\ntimestamp will also be updated if a field is added, the manager\nchanges any of the owned fields value or removes a field. The\ntimestamp does not update when a field is removed from the entry\nbecause another manager took it over.\n+optional" 196 }, 197 "fieldsType": { 198 "type": "string", 199 "title": "FieldsType is the discriminator for the different fields format and version.\nThere is currently only one possible value: \"FieldsV1\"" 200 }, 201 "fieldsV1": { 202 "$ref": "#/definitions/v1FieldsV1", 203 "title": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.\n+optional" 204 }, 205 "subresource": { 206 "type": "string", 207 "description": "Subresource is the name of the subresource used to update that object, or\nempty string if the object was updated through the main resource. The\nvalue of this field is used to distinguish between managers, even if they\nshare the same name. For example, a status update will be distinct from a\nregular update using the same manager name.\nNote that the APIVersion field is not related to the Subresource field and\nit always corresponds to the version of the main resource." 208 } 209 }, 210 "description": "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource\nthat the fieldset applies to." 211 }, 212 "v1MicroTime": { 213 "type": "object", 214 "properties": { 215 "seconds": { 216 "type": "string", 217 "format": "int64", 218 "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive." 219 }, 220 "nanos": { 221 "type": "integer", 222 "format": "int32", 223 "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context." 224 } 225 }, 226 "description": "MicroTime is version of Time with microsecond level precision.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false" 227 }, 228 "v1ObjectMeta": { 229 "type": "object", 230 "properties": { 231 "name": { 232 "type": "string", 233 "title": "Name must be unique within a namespace. Is required when creating resources, although\nsome resources may allow a client to request the generation of an appropriate name\nautomatically. Name is primarily intended for creation idempotence and configuration\ndefinition.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n+optional" 234 }, 235 "generateName": { 236 "type": "string", 237 "description": "GenerateName is an optional prefix, used by the server, to generate a unique\nname ONLY IF the Name field has not been provided.\nIf this field is used, the name returned to the client will be different\nthan the name passed. This value will also be combined with a unique suffix.\nThe provided value has the same validation rules as the Name field,\nand may be truncated by the length of the suffix required to make the value\nunique on the server.\n\nIf this field is specified and the generated name exists, the server will return a 409.\n\nApplied only if Name is not specified.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\n+optional" 238 }, 239 "namespace": { 240 "type": "string", 241 "description": "Namespace defines the space within which each name must be unique. An empty namespace is\nequivalent to the \"default\" namespace, but \"default\" is the canonical representation.\nNot all objects are required to be scoped to a namespace - the value of this field for\nthose objects will be empty.\n\nMust be a DNS_LABEL.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces\n+optional" 242 }, 243 "selfLink": { 244 "type": "string", 245 "title": "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n+optional" 246 }, 247 "uid": { 248 "type": "string", 249 "description": "UID is the unique in time and space value for this object. It is typically generated by\nthe server on successful creation of a resource and is not allowed to change on PUT\noperations.\n\nPopulated by the system.\nRead-only.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n+optional" 250 }, 251 "resourceVersion": { 252 "type": "string", 253 "description": "An opaque value that represents the internal version of this object that can\nbe used by clients to determine when objects have changed. May be used for optimistic\nconcurrency, change detection, and the watch operation on a resource or set of resources.\nClients must treat these values as opaque and passed unmodified back to the server.\nThey may only be valid for a particular resource or set of resources.\n\nPopulated by the system.\nRead-only.\nValue must be treated as opaque by clients and .\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n+optional" 254 }, 255 "generation": { 256 "type": "string", 257 "format": "int64", 258 "title": "A sequence number representing a specific generation of the desired state.\nPopulated by the system. Read-only.\n+optional" 259 }, 260 "creationTimestamp": { 261 "type": "string", "format": "date-time", 262 "description": "CreationTimestamp is a timestamp representing the server time when this object was\ncreated. It is not guaranteed to be set in happens-before order across separate operations.\nClients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system.\nRead-only.\nNull for lists.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n+optional" 263 }, 264 "deletionTimestamp": { 265 "type": "string", "format": "date-time", 266 "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\nfield is set by the server when a graceful deletion is requested by the user, and is not\ndirectly settable by a client. The resource is expected to be deleted (no longer visible\nfrom resource lists, and not reachable by name) after the time in this field, once the\nfinalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\nOnce the deletionTimestamp is set, this value may not be unset or be set further into the\nfuture, although it may be shortened or the resource may be deleted prior to this time.\nFor example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\nby sending a graceful termination signal to the containers in the pod. After that 30 seconds,\nthe Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\nremove the pod from the API. In the presence of network partitions, this object may still\nexist after this timestamp, until an administrator or automated process can determine the\nresource is fully terminated.\nIf not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested.\nRead-only.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n+optional" 267 }, 268 "deletionGracePeriodSeconds": { 269 "type": "string", 270 "format": "int64", 271 "title": "Number of seconds allowed for this object to gracefully terminate before\nit will be removed from the system. Only set when deletionTimestamp is also set.\nMay only be shortened.\nRead-only.\n+optional" 272 }, 273 "labels": { 274 "type": "object", 275 "additionalProperties": { 276 "type": "string" 277 }, 278 "title": "Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand services.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n+optional" 279 }, 280 "annotations": { 281 "type": "object", 282 "additionalProperties": { 283 "type": "string" 284 }, 285 "title": "Annotations is an unstructured key value map stored with a resource that may be\nset by external tools to store and retrieve arbitrary metadata. They are not\nqueryable and should be preserved when modifying objects.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n+optional" 286 }, 287 "ownerReferences": { 288 "type": "array", 289 "items": { 290 "$ref": "#/definitions/v1OwnerReference" 291 }, 292 "title": "List of objects depended by this object. If ALL objects in the list have\nbeen deleted, this object will be garbage collected. If this object is managed by a controller,\nthen an entry in this list will point to this controller, with the controller field set to true.\nThere cannot be more than one managing controller.\n+optional\n+patchMergeKey=uid\n+patchStrategy=merge\n+listType=map\n+listMapKey=uid" 293 }, 294 "finalizers": { 295 "type": "array", 296 "items": { 297 "type": "string" 298 }, 299 "title": "Must be empty before the object is deleted from the registry. Each entry\nis an identifier for the responsible component that will remove the entry\nfrom the list. If the deletionTimestamp of the object is non-nil, entries\nin this list can only be removed.\nFinalizers may be processed and removed in any order. Order is NOT enforced\nbecause it introduces significant risk of stuck finalizers.\nfinalizers is a shared field, any actor with permission can reorder it.\nIf the finalizer list is processed in order, then this can lead to a situation\nin which the component responsible for the first finalizer in the list is\nwaiting for a signal (field value, external system, or other) produced by a\ncomponent responsible for a finalizer later in the list, resulting in a deadlock.\nWithout enforced ordering finalizers are free to order amongst themselves and\nare not vulnerable to ordering changes in the list.\n+optional\n+patchStrategy=merge\n+listType=set" 300 }, 301 "managedFields": { 302 "type": "array", 303 "items": { 304 "$ref": "#/definitions/v1ManagedFieldsEntry" 305 }, 306 "description": "ManagedFields maps workflow-id and version to the set of fields\nthat are managed by that workflow. This is mostly for internal\nhousekeeping, and users typically shouldn't need to set or\nunderstand this field. A workflow can be the user's name, a\ncontroller's name, or the name of a specific apply path like\n\"ci-cd\". The set of fields is always in the version that the\nworkflow used when modifying the object.\n\n+optional\n+listType=atomic" 307 } 308 }, 309 "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects\nusers must create." 310 }, 311 "v1OwnerReference": { 312 "type": "object", 313 "properties": { 314 "apiVersion": { 315 "type": "string", 316 "description": "API version of the referent." 317 }, 318 "kind": { 319 "type": "string", 320 "title": "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" 321 }, 322 "name": { 323 "type": "string", 324 "title": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names" 325 }, 326 "uid": { 327 "type": "string", 328 "title": "UID of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids" 329 }, 330 "controller": { 331 "type": "boolean", 332 "title": "If true, this reference points to the managing controller.\n+optional" 333 }, 334 "blockOwnerDeletion": { 335 "type": "boolean", 336 "title": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then\nthe owner cannot be deleted from the key-value store until this\nreference is removed.\nSee https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion\nfor how the garbage collector interacts with this field and enforces the foreground deletion.\nDefaults to false.\nTo set this field, a user needs \"delete\" permission of the owner,\notherwise 422 (Unprocessable Entity) will be returned.\n+optional" 337 } 338 }, 339 "title": "OwnerReference contains enough information to let you identify an owning\nobject. An owning object must be in the same namespace as the dependent, or\nbe cluster-scoped, so there is no namespace field.\n+structType=atomic" 340 }, 341 "v1Time": { 342 "type": "object", 343 "properties": { 344 "seconds": { 345 "type": "string", 346 "format": "int64", 347 "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive." 348 }, 349 "nanos": { 350 "type": "integer", 351 "format": "int32", 352 "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context." 353 } 354 }, 355 "description": "Time is a wrapper around time.Time which supports correct\nmarshaling to YAML and JSON. Wrappers are provided for many\nof the factory methods that the time package offers.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false" 356 }, 357 "v1alpha1Cluster": { 358 "type": "object", 359 "properties": { 360 "metadata": { 361 "$ref": "#/definitions/v1ObjectMeta" 362 }, 363 "spec": { 364 "$ref": "#/definitions/v1alpha1ClusterSpec" 365 }, 366 "status": { 367 "$ref": "#/definitions/v1alpha1ClusterStatus" 368 } 369 }, 370 "description": "Cluster defines any runtime for running containers, in the broadest\nsense of the word \"runtime\".\n\n+k8s:openapi-gen=true" 371 }, 372 "v1alpha1ClusterConnection": { 373 "type": "object", 374 "properties": { 375 "kubernetes": { 376 "$ref": "#/definitions/v1alpha1KubernetesClusterConnection", 377 "description": "Defines connection to a Kubernetes cluster." 378 }, 379 "docker": { 380 "$ref": "#/definitions/v1alpha1DockerClusterConnection", 381 "description": "Defines connection to a Docker daemon." 382 } 383 }, 384 "description": "Connection spec for an existing cluster." 385 }, 386 "v1alpha1ClusterConnectionStatus": { 387 "type": "object", 388 "properties": { 389 "kubernetes": { 390 "$ref": "#/definitions/v1alpha1KubernetesClusterConnectionStatus", 391 "description": "Defines connection to a Kubernetes cluster." 392 } 393 }, 394 "description": "Connection spec for an existing cluster." 395 }, 396 "v1alpha1ClusterSpec": { 397 "type": "object", 398 "properties": { 399 "connection": { 400 "$ref": "#/definitions/v1alpha1ClusterConnection", 401 "description": "Connection spec for an existing cluster." 402 }, 403 "defaultRegistry": { 404 "$ref": "#/definitions/v1alpha1RegistryHosting", 405 "description": "DefaultRegistry determines where images for this Cluster should\nbe pushed/pulled from if the Cluster itself does not provide local\nregistry hosting metadata.\n\nIf not specified, no registry rewriting will occur, and the images will\nbe pushed/pulled to from the registry specified by the corresponding\nimage build directive (e.g. `docker_build` or `custom_build`).\n\n+optional" 406 } 407 }, 408 "description": "ClusterSpec defines how to find the cluster we're running\ncontainers on.\n\nTilt currently supports connecting to an existing Kubernetes\ncluster or an existing Docker Daemon (for Docker Compose)." 409 }, 410 "v1alpha1ClusterStatus": { 411 "type": "object", 412 "properties": { 413 "arch": { 414 "type": "string", 415 "description": "The preferred chip architecture of the cluster.\n\nOn Kubernetes, this will correspond to the kubernetes.io/arch annotation on\na node.\n\nOn Docker, this will be the Architecture of the Docker daemon.\n\nNote that many clusters support multiple chipsets. This field doesn't intend\nthat this is the only architecture a cluster supports, only that it's one\nof the architectures." 416 }, 417 "error": { 418 "type": "string", 419 "description": "An unrecoverable error connecting to the cluster.\n\n+optional" 420 }, 421 "connectedAt": { 422 "type": "string", "format": "date-time", 423 "description": "ConnectedAt indicates the time at which the cluster connection was established.\n\nConsumers can use this to detect when the underlying config has changed\nand refresh their client/connection accordingly.\n\n+optional" 424 }, 425 "registry": { 426 "$ref": "#/definitions/v1alpha1RegistryHosting", 427 "description": "Registry describes a local registry that developer tools can\nconnect to. A local registry allows clients to load images into the local\ncluster by pushing to this registry.\n\n+optional" 428 }, 429 "connection": { 430 "$ref": "#/definitions/v1alpha1ClusterConnectionStatus", 431 "description": "Connection status for an existing cluster.\n\n+optional" 432 }, 433 "version": { 434 "type": "string", 435 "description": "Version is a cluster-provided, human-readable version string.\n\n+optional" 436 } 437 }, 438 "title": "ClusterStatus defines the observed state of Cluster" 439 }, 440 "v1alpha1ConfigMapDisableSource": { 441 "type": "object", 442 "properties": { 443 "name": { 444 "type": "string", 445 "title": "The name of the ConfigMap" 446 }, 447 "key": { 448 "type": "string", 449 "description": "The key where the enable/disable state is stored." 450 } 451 }, 452 "title": "Specifies a ConfigMap to control a DisableSource" 453 }, 454 "v1alpha1DisableResourceStatus": { 455 "type": "object", 456 "properties": { 457 "enabledCount": { 458 "type": "integer", 459 "format": "int32", 460 "description": "How many of the resource's sources are enabled." 461 }, 462 "disabledCount": { 463 "type": "integer", 464 "format": "int32", 465 "description": "How many of the resource's sources are disabled." 466 }, 467 "state": { 468 "type": "string", 469 "title": "Whether this is currently disabled (if known)" 470 }, 471 "sources": { 472 "type": "array", 473 "items": { 474 "$ref": "#/definitions/v1alpha1DisableSource" 475 }, 476 "description": "All unique sources that control the resource's objects' disable status." 477 } 478 }, 479 "description": "Aggregated disable status of DisableSources that belong to a resource." 480 }, 481 "v1alpha1DisableSource": { 482 "type": "object", 483 "properties": { 484 "configMap": { 485 "$ref": "#/definitions/v1alpha1ConfigMapDisableSource", 486 "description": "Disabled by single ConfigMap value." 487 }, 488 "everyConfigMap": { 489 "type": "array", 490 "items": { 491 "$ref": "#/definitions/v1alpha1ConfigMapDisableSource" 492 }, 493 "description": "Disabled by multiple ConfigMap values, which must all be set to disabled\nto disable the object." 494 } 495 }, 496 "title": "Points at a thing that can control whether something is disabled" 497 }, 498 "v1alpha1DockerClusterConnection": { 499 "type": "object", 500 "properties": { 501 "host": { 502 "type": "string", 503 "description": "The docker host to use.\n\nIf not specified, will read the DOCKER_HOST env or use the default docker\nhost." 504 } 505 } 506 }, 507 "v1alpha1KubernetesClusterConnection": { 508 "type": "object", 509 "properties": { 510 "context": { 511 "type": "string", 512 "description": "The name of the kubeconfig context to use.\n\nIf not specified, will use the default context in the kubeconfig.\n\n+optional" 513 }, 514 "namespace": { 515 "type": "string", 516 "description": "The default namespace to use.\n\nIf not specified, will use the namespace in the kubeconfig.\n\n+optional" 517 } 518 } 519 }, 520 "v1alpha1KubernetesClusterConnectionStatus": { 521 "type": "object", 522 "properties": { 523 "context": { 524 "type": "string", 525 "description": "The resolved kubeconfig context." 526 }, 527 "namespace": { 528 "type": "string", 529 "description": "The resolved default namespace." 530 }, 531 "cluster": { 532 "type": "string", 533 "description": "The resolved cluster name (as determined by the kubeconfig context)." 534 }, 535 "product": { 536 "type": "string", 537 "description": "The product name for this cluster.\n\nFor a complete list of possible product names, see:\nhttps://pkg.go.dev/github.com/tilt-dev/clusterid#Product" 538 }, 539 "configPath": { 540 "type": "string", 541 "description": "The resolved config path.\n\nTilt will freeze the config and write it to a temporary directory.\nSubprocesses that depend on this cluster can find this file\nby reading the KUBECONFIG env var." 542 } 543 }, 544 "title": "Kubernetes-specific fields for connection status" 545 }, 546 "v1alpha1RegistryHosting": { 547 "type": "object", 548 "properties": { 549 "host": { 550 "type": "string", 551 "description": "Host documents the host (hostname and port) of the registry, as seen from\noutside the cluster.\n\nThis is the registry host that tools outside the cluster should push images\nto." 552 }, 553 "hostFromClusterNetwork": { 554 "type": "string", 555 "description": "HostFromClusterNetwork documents the host (hostname and port) of the\nregistry, as seen from networking inside the container pods.\n\nThis is the registry host that tools running on pods inside the cluster\nshould push images to. If not set, then tools inside the cluster should\nassume the local registry is not available to them.\n\n+optional" 556 }, 557 "hostFromContainerRuntime": { 558 "type": "string", 559 "description": "HostFromContainerRuntime documents the host (hostname and port) of the\nregistry, as seen from the cluster's container runtime.\n\nWhen tools apply Kubernetes objects to the cluster, this host should be\nused for image name fields. If not set, users of this field should use the\nvalue of Host instead.\n\nNote that it doesn't make sense semantically to define this field, but not\ndefine Host or HostFromClusterNetwork. That would imply a way to pull\nimages without a way to push images.\n\n+optional" 560 }, 561 "help": { 562 "type": "string", 563 "description": "Help contains a URL pointing to documentation for users on how to set\nup and configure a local registry.\n\nTools can use this to nudge users to enable the registry. When possible,\nthe writer should use as permanent a URL as possible to prevent drift\n(e.g., a version control SHA).\n\nWhen image pushes to a registry host specified in one of the other fields\nfail, the tool should display this help URL to the user. The help URL\nshould contain instructions on how to diagnose broken or misconfigured\nregistries.\n\n+optional" 564 }, 565 "singleName": { 566 "type": "string", 567 "description": "SingleName uses a shared image name for _all_ Tilt-built images and\nrelies on tags to distinguish between logically distinct images.\n\nThis is most commonly used with Amazon Elastic Container Registry (ECR),\nwhich works differently than other image registries.\n\nAn ECR host takes the form https://aws_account_id.dkr.ecr.region.amazonaws.com.\nEach image name in that registry must be pre-created ಠ_ಠ and assigned\nIAM permissions.\nFor example: https://aws_account_id.dkr.ecr.region.amazonaws.com/my-repo\n(They call this a repo).\n\nFor this reason, some users using ECR prefer to push all images to a\nsingle image name (ECR repo).\n\nA recommended pattern here is to create a \"personal\" image repo for each\nuser during development.\n\nSee:\nhttps://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html\nhttps://github.com/tilt-dev/tilt/issues/2419\n\n+optional" 568 } 569 } 570 }, 571 "v1alpha1UIBoolInputSpec": { 572 "type": "object", 573 "properties": { 574 "defaultValue": { 575 "type": "boolean", 576 "title": "Whether the input is initially true or false.\n+optional" 577 }, 578 "trueString": { 579 "type": "string", 580 "title": "If the input's value is converted to a string, use this when the value is true.\nIf unspecified, its string value will be `\"true\"`\n+optional" 581 }, 582 "falseString": { 583 "type": "string", 584 "title": "If the input's value is converted to a string, use this when the value is false.\nIf unspecified, its string value will be `\"false\"`\n+optional" 585 } 586 }, 587 "description": "Describes a boolean checkbox input field attached to a button." 588 }, 589 "v1alpha1UIBoolInputStatus": { 590 "type": "object", 591 "properties": { 592 "value": { 593 "type": "boolean" 594 } 595 } 596 }, 597 "v1alpha1UIBuildRunning": { 598 "type": "object", 599 "properties": { 600 "startTime": { 601 "type": "string", "format": "date-time", 602 "title": "The time when the build started.\n+optional" 603 }, 604 "spanID": { 605 "type": "string", 606 "title": "The log span where the build logs are stored in the logstore.\n+optional" 607 } 608 }, 609 "description": "UIBuildRunning represents an in-progress build/update in the user interface." 610 }, 611 "v1alpha1UIBuildTerminated": { 612 "type": "object", 613 "properties": { 614 "error": { 615 "type": "string", 616 "title": "A non-empty string if the build failed with an error.\n+optional" 617 }, 618 "warnings": { 619 "type": "array", 620 "items": { 621 "type": "string" 622 }, 623 "title": "A list of warnings encountered while running the build.\nThese warnings will also be printed to the build's log.\n+optional" 624 }, 625 "startTime": { 626 "type": "string", "format": "date-time", 627 "title": "The time when the build started.\n+optional" 628 }, 629 "finishTime": { 630 "type": "string", "format": "date-time", 631 "title": "The time when the build finished.\n+optional" 632 }, 633 "spanID": { 634 "type": "string", 635 "title": "The log span where the build logs are stored in the logstore.\n+optional" 636 }, 637 "isCrashRebuild": { 638 "type": "boolean", 639 "title": "A crash rebuild happens when Tilt live-updated a container, then\nthe pod crashed, wiping out the live-updates. Tilt does a full\nbuild+deploy to reset the pod state to what's on disk.\n+optional" 640 } 641 }, 642 "description": "UIBuildRunning represents a finished build/update in the user interface." 643 }, 644 "v1alpha1UIButton": { 645 "type": "object", 646 "properties": { 647 "metadata": { 648 "$ref": "#/definitions/v1ObjectMeta" 649 }, 650 "spec": { 651 "$ref": "#/definitions/v1alpha1UIButtonSpec" 652 }, 653 "status": { 654 "$ref": "#/definitions/v1alpha1UIButtonStatus" 655 } 656 }, 657 "title": "UIButton\n+k8s:openapi-gen=true\n+tilt:starlark-gen=true" 658 }, 659 "v1alpha1UIButtonSpec": { 660 "type": "object", 661 "properties": { 662 "location": { 663 "$ref": "#/definitions/v1alpha1UIComponentLocation", 664 "description": "Location associates the button with another component for layout." 665 }, 666 "text": { 667 "type": "string", 668 "description": "Text to appear on the button itself or as hover text (depending on button location)." 669 }, 670 "iconName": { 671 "type": "string", 672 "description": "IconName is a Material Icon to appear next to button text or on the button itself (depending on button location).\n\nValid values are icon font ligature names from the Material Icons set.\nSee https://fonts.google.com/icons for the full list of available icons.\n\nIf both IconSVG and IconName are specified, IconSVG will take precedence.\n\n+optional" 673 }, 674 "iconSVG": { 675 "type": "string", 676 "description": "IconSVG is an SVG to use as the icon to appear next to button text or on the button itself (depending on button\nlocation).\n\nThis should be an \u003csvg\u003e element scaled for a 24x24 viewport.\n\nIf both IconSVG and IconName are specified, IconSVG will take precedence.\n\n+optional" 677 }, 678 "disabled": { 679 "type": "boolean", 680 "description": "If true, the button will be rendered, but with an effect indicating it's\ndisabled. It will also be unclickable.\n\n+optional" 681 }, 682 "requiresConfirmation": { 683 "type": "boolean", 684 "description": "+optional", 685 "title": "If true, the UI will require the user to click the button a second time to\nconfirm before taking action" 686 }, 687 "inputs": { 688 "type": "array", 689 "items": { 690 "$ref": "#/definitions/v1alpha1UIInputSpec" 691 }, 692 "title": "Any inputs for this button.\n+optional" 693 } 694 }, 695 "title": "UIButtonSpec defines the desired state of UIButton" 696 }, 697 "v1alpha1UIButtonStatus": { 698 "type": "object", 699 "properties": { 700 "lastClickedAt": { 701 "type": "string", "format": "date-time", 702 "description": "LastClickedAt is the timestamp of the last time the button was clicked.\n\nIf the button has never clicked before, this will be the zero-value/null." 703 }, 704 "inputs": { 705 "type": "array", 706 "items": { 707 "$ref": "#/definitions/v1alpha1UIInputStatus" 708 }, 709 "title": "Status of any inputs on this button.\n+optional" 710 } 711 }, 712 "title": "UIButtonStatus defines the observed state of UIButton" 713 }, 714 "v1alpha1UIChoiceInputSpec": { 715 "type": "object", 716 "properties": { 717 "choices": { 718 "type": "array", 719 "items": { 720 "type": "string" 721 }, 722 "description": "+optional", 723 "title": "The list of valid values for this field" 724 } 725 }, 726 "title": "Describes a choice dropdown input field attached to a button" 727 }, 728 "v1alpha1UIChoiceInputStatus": { 729 "type": "object", 730 "properties": { 731 "value": { 732 "type": "string" 733 } 734 } 735 }, 736 "v1alpha1UIComponentLocation": { 737 "type": "object", 738 "properties": { 739 "componentID": { 740 "type": "string", 741 "description": "ComponentID is the identifier of the parent component to associate this component with.\n\nFor example, this is a resource name if the ComponentType is Resource." 742 }, 743 "componentType": { 744 "type": "string", 745 "description": "ComponentType is the type of the parent component." 746 } 747 }, 748 "description": "UIComponentLocation specifies where to put a UI component." 749 }, 750 "v1alpha1UIFeatureFlag": { 751 "type": "object", 752 "properties": { 753 "name": { 754 "type": "string", 755 "title": "The name of the flag.\n+optional" 756 }, 757 "value": { 758 "type": "boolean", 759 "title": "The value of the flag.\n+optional" 760 } 761 }, 762 "description": "Configures Tilt to enable non-default features (e.g., experimental or\ndeprecated).\n\nThe Tilt features controlled by this are generally in an unfinished state,\nand not yet documented.\n\nAs a Tilt user, you don’t need to worry about this unless something\nelse directs you to (e.g., an experimental feature doc, or a conversation\nwith a Tilt contributor)." 763 }, 764 "v1alpha1UIHiddenInputSpec": { 765 "type": "object", 766 "properties": { 767 "value": { 768 "type": "string" 769 } 770 }, 771 "description": "Describes a hidden input field attached to a button,\nwith a value to pass on any submit." 772 }, 773 "v1alpha1UIHiddenInputStatus": { 774 "type": "object", 775 "properties": { 776 "value": { 777 "type": "string" 778 } 779 } 780 }, 781 "v1alpha1UIInputSpec": { 782 "type": "object", 783 "properties": { 784 "name": { 785 "type": "string", 786 "description": "Name of this input. Must be unique within the UIButton." 787 }, 788 "label": { 789 "type": "string", 790 "title": "A label to display next to this input in the UI.\n+optional" 791 }, 792 "text": { 793 "$ref": "#/definitions/v1alpha1UITextInputSpec", 794 "title": "A Text input that takes a string.\n+optional" 795 }, 796 "bool": { 797 "$ref": "#/definitions/v1alpha1UIBoolInputSpec", 798 "title": "A Bool input that is true or false\n+optional" 799 }, 800 "hidden": { 801 "$ref": "#/definitions/v1alpha1UIHiddenInputSpec", 802 "title": "An input that has a constant value and does not display to the user\n+optional" 803 }, 804 "choice": { 805 "$ref": "#/definitions/v1alpha1UIChoiceInputSpec", 806 "title": "A Choice input that takes a list of strings" 807 } 808 }, 809 "description": "Defines an Input to render in the UI.\nIf UIButton is analogous to an HTML \u003cform\u003e,\nUIInput is analogous to an HTML \u003cinput\u003e." 810 }, 811 "v1alpha1UIInputStatus": { 812 "type": "object", 813 "properties": { 814 "name": { 815 "type": "string", 816 "description": "Name of the input whose status this is. Must match the `Name` of a corresponding\nUIInputSpec." 817 }, 818 "text": { 819 "$ref": "#/definitions/v1alpha1UITextInputStatus", 820 "title": "The status of the input, if it's text\n+optional" 821 }, 822 "bool": { 823 "$ref": "#/definitions/v1alpha1UIBoolInputStatus", 824 "title": "The status of the input, if it's a bool\n+optional" 825 }, 826 "hidden": { 827 "$ref": "#/definitions/v1alpha1UIHiddenInputStatus", 828 "title": "The status of the input, if it's a hidden\n+optional" 829 }, 830 "choice": { 831 "$ref": "#/definitions/v1alpha1UIChoiceInputStatus", 832 "title": "The status of the input, if it's a choice\n+optional" 833 } 834 }, 835 "title": "The status corresponding to a UIInputSpec" 836 }, 837 "v1alpha1UIResource": { 838 "type": "object", 839 "properties": { 840 "metadata": { 841 "$ref": "#/definitions/v1ObjectMeta" 842 }, 843 "spec": { 844 "$ref": "#/definitions/v1alpha1UIResourceSpec" 845 }, 846 "status": { 847 "$ref": "#/definitions/v1alpha1UIResourceStatus" 848 } 849 }, 850 "description": "UIResource represents per-resource status data for rendering the web UI.\n\nTreat this as a legacy data structure that's more intended to make transition\neasier rather than a robust long-term API.\n\n+k8s:openapi-gen=true" 851 }, 852 "v1alpha1UIResourceCondition": { 853 "type": "object", 854 "properties": { 855 "type": { 856 "type": "string", 857 "description": "Type of UI Resource condition." 858 }, 859 "status": { 860 "type": "string", 861 "description": "Status of the condition, one of True, False, Unknown." 862 }, 863 "lastTransitionTime": { 864 "type": "string", "format": "date-time", 865 "title": "Last time the condition transitioned from one status to another.\n+optional" 866 }, 867 "reason": { 868 "type": "string", 869 "title": "The reason for the condition's last transition.\n+optional" 870 }, 871 "message": { 872 "type": "string", 873 "title": "A human readable message indicating details about the transition.\n+optional" 874 } 875 } 876 }, 877 "v1alpha1UIResourceKubernetes": { 878 "type": "object", 879 "properties": { 880 "podName": { 881 "type": "string", 882 "description": "The name of the active pod.\n\nThe active pod tends to be what Tilt defaults to for port-forwards,\nlive-updates, etc.\n+optional" 883 }, 884 "podCreationTime": { 885 "type": "string", "format": "date-time", 886 "title": "The creation time of the active pod.\n+optional" 887 }, 888 "podUpdateStartTime": { 889 "type": "string", "format": "date-time", 890 "title": "The last update time of the active pod\n+optional" 891 }, 892 "podStatus": { 893 "type": "string", 894 "title": "The status of the active pod.\n+optional" 895 }, 896 "podStatusMessage": { 897 "type": "string", 898 "title": "Extra error messaging around the current status of the active pod.\n+optional" 899 }, 900 "allContainersReady": { 901 "type": "boolean", 902 "title": "Whether all the containers in the pod are currently healthy\nand have passed readiness checks.\n+optional" 903 }, 904 "podRestarts": { 905 "type": "integer", 906 "format": "int32", 907 "title": "The number of pod restarts.\n+optional" 908 }, 909 "spanID": { 910 "type": "string", 911 "title": "The span where this pod stores its logs in the Tilt logstore.\n+optional" 912 }, 913 "displayNames": { 914 "type": "array", 915 "items": { 916 "type": "string" 917 }, 918 "title": "The list of all resources deployed in the Kubernetes deploy\nfor this resource.\n+optional" 919 } 920 }, 921 "description": "UIResourceKubernetes contains status information specific to Kubernetes." 922 }, 923 "v1alpha1UIResourceLink": { 924 "type": "object", 925 "properties": { 926 "url": { 927 "type": "string", 928 "title": "A URL to link to.\n+optional" 929 }, 930 "name": { 931 "type": "string", 932 "title": "The display label on a URL.\n+optional" 933 } 934 }, 935 "description": "UIResourceLink represents a link assocatiated with a UIResource." 936 }, 937 "v1alpha1UIResourceLocal": { 938 "type": "object", 939 "properties": { 940 "pid": { 941 "type": "string", 942 "format": "int64", 943 "title": "The PID of the actively running local command.\n+optional" 944 }, 945 "isTest": { 946 "type": "boolean", 947 "description": "Whether this represents a test job.\n\nDeprecated: Users should use labels for marking services as tests.\n\n+optional" 948 } 949 }, 950 "description": "UIResourceLocal contains status information specific to local commands." 951 }, 952 "v1alpha1UIResourceSpec": { 953 "type": "object", 954 "description": "UIResourceSpec is an empty struct.\nUIResource is a kludge for making Tilt's internal status readable, not\nfor specifying behavior." 955 }, 956 "v1alpha1UIResourceStateWaiting": { 957 "type": "object", 958 "properties": { 959 "reason": { 960 "type": "string", 961 "description": "Reason is a unique, one-word reason for why the UIResource update is pending." 962 }, 963 "on": { 964 "type": "array", 965 "items": { 966 "$ref": "#/definitions/v1alpha1UIResourceStateWaitingOnRef" 967 }, 968 "description": "HoldingOn is the set of objects blocking this resource from updating.\n\nThese objects might NOT be explicit dependencies of the current resource. For example, if an un-parallelizable\nresource is updating, all other resources with queued updates will be holding on it with a reason of\n`waiting-for-local`.\n\n+optional" 969 } 970 } 971 }, 972 "v1alpha1UIResourceStateWaitingOnRef": { 973 "type": "object", 974 "properties": { 975 "group": { 976 "type": "string", 977 "description": "Group for the object type being waited on." 978 }, 979 "apiVersion": { 980 "type": "string", 981 "description": "APIVersion for the object type being waited on." 982 }, 983 "kind": { 984 "type": "string", 985 "description": "Kind of the object type being waited on." 986 }, 987 "name": { 988 "type": "string", 989 "description": "Name of the object being waiting on." 990 } 991 } 992 }, 993 "v1alpha1UIResourceStatus": { 994 "type": "object", 995 "properties": { 996 "lastDeployTime": { 997 "type": "string", "format": "date-time", 998 "title": "The last time this resource was deployed.\n+optional" 999 }, 1000 "triggerMode": { 1001 "type": "integer", 1002 "format": "int32", 1003 "title": "Bit mask representing whether this resource is run when:\n1) When a file changes\n2) When the resource initializes\n+optional" 1004 }, 1005 "buildHistory": { 1006 "type": "array", 1007 "items": { 1008 "$ref": "#/definitions/v1alpha1UIBuildTerminated" 1009 }, 1010 "title": "Past completed builds.\n+optional" 1011 }, 1012 "currentBuild": { 1013 "$ref": "#/definitions/v1alpha1UIBuildRunning", 1014 "title": "The currently running build, if any.\n+optional" 1015 }, 1016 "pendingBuildSince": { 1017 "type": "string", "format": "date-time", 1018 "title": "When the build was put in the pending queue.\n+optional" 1019 }, 1020 "hasPendingChanges": { 1021 "type": "boolean", 1022 "title": "True if the build was put in the pending queue due to file changes.\n+optional" 1023 }, 1024 "endpointLinks": { 1025 "type": "array", 1026 "items": { 1027 "$ref": "#/definitions/v1alpha1UIResourceLink" 1028 }, 1029 "title": "Links attached to this resource.\n+optional" 1030 }, 1031 "k8sResourceInfo": { 1032 "$ref": "#/definitions/v1alpha1UIResourceKubernetes", 1033 "title": "Extra data about Kubernetes resources.\n+optional" 1034 }, 1035 "localResourceInfo": { 1036 "$ref": "#/definitions/v1alpha1UIResourceLocal", 1037 "title": "Extra data about Local resources\n+optional" 1038 }, 1039 "runtimeStatus": { 1040 "type": "string", 1041 "description": "The RuntimeStatus is a simple, high-level summary of the runtime state of a server.\n\nNot all resources run servers.\n+optional" 1042 }, 1043 "updateStatus": { 1044 "type": "string", 1045 "description": "The UpdateStatus is a simple, high-level summary of any update tasks to bring\nthe resource up-to-date.\n\nIf the resource runs a server, this may include both build tasks and live-update\nsyncing.\n+optional" 1046 }, 1047 "specs": { 1048 "type": "array", 1049 "items": { 1050 "$ref": "#/definitions/v1alpha1UIResourceTargetSpec" 1051 }, 1052 "title": "Information about all the target specs that this resource summarizes.\n+optional" 1053 }, 1054 "queued": { 1055 "type": "boolean", 1056 "title": "Queued is a simple indicator of whether the resource is queued for an update.\n+optional" 1057 }, 1058 "order": { 1059 "type": "integer", 1060 "format": "int32", 1061 "description": "Order expresses the relative order of resources in the UI when they're not\notherwise sorted. Lower integers go first. When two resources have the same\norder, they should be sorted by name.\n\nWhen UIResources are generated from the Tiltfile, we use the order they\nwere added to the Tiltfile for the Order field.\n\n+optional" 1062 }, 1063 "disableStatus": { 1064 "$ref": "#/definitions/v1alpha1DisableResourceStatus", 1065 "description": "Information about the resource's objects' disabled status." 1066 }, 1067 "waiting": { 1068 "$ref": "#/definitions/v1alpha1UIResourceStateWaiting", 1069 "description": "Waiting provides detail on why the resource is currently blocked from updating.\n\n+optional" 1070 }, 1071 "conditions": { 1072 "type": "array", 1073 "items": { 1074 "$ref": "#/definitions/v1alpha1UIResourceCondition" 1075 }, 1076 "description": "Represents the latest available observations of a UIResource's current state.\n\nDesigned for compatibility with 'wait' and cross-resource status reporting.\nhttps://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties\n\n+optional" 1077 } 1078 }, 1079 "title": "UIResourceStatus defines the observed state of UIResource" 1080 }, 1081 "v1alpha1UIResourceTargetSpec": { 1082 "type": "object", 1083 "properties": { 1084 "id": { 1085 "type": "string", 1086 "title": "The ID of the target.\n+optional" 1087 }, 1088 "type": { 1089 "type": "string", 1090 "title": "The type of the target.\n+optional" 1091 }, 1092 "hasLiveUpdate": { 1093 "type": "boolean", 1094 "title": "Whether the target has a live update associated with it.\n+optional" 1095 } 1096 }, 1097 "description": "UIResourceTargetSpec represents the spec of a build or deploy that a resource summarizes." 1098 }, 1099 "v1alpha1UISession": { 1100 "type": "object", 1101 "properties": { 1102 "metadata": { 1103 "$ref": "#/definitions/v1ObjectMeta" 1104 }, 1105 "spec": { 1106 "$ref": "#/definitions/v1alpha1UISessionSpec" 1107 }, 1108 "status": { 1109 "$ref": "#/definitions/v1alpha1UISessionStatus" 1110 } 1111 }, 1112 "description": "UISession represents global status data for rendering the web UI.\n\nTreat this as a legacy data structure that's more intended to make transition\neasier rather than a robust long-term API.\n\nPer-resource status data should be stored in UIResource.\n\n+k8s:openapi-gen=true" 1113 }, 1114 "v1alpha1UISessionSpec": { 1115 "type": "object", 1116 "description": "UISessionSpec is an empty struct.\nUISession is a kludge for making Tilt's internal status readable, not\nfor specifying behavior." 1117 }, 1118 "v1alpha1UISessionStatus": { 1119 "type": "object", 1120 "properties": { 1121 "featureFlags": { 1122 "type": "array", 1123 "items": { 1124 "$ref": "#/definitions/v1alpha1UIFeatureFlag" 1125 }, 1126 "title": "FeatureFlags reports a list of experimental features that have been\nenabled.\n+optional" 1127 }, 1128 "needsAnalyticsNudge": { 1129 "type": "boolean", 1130 "title": "NeedsAnalyticsNudge reports whether the UI hasn't opted in or out\nof analytics, and the UI should nudge them to do so.\n+optional" 1131 }, 1132 "runningTiltBuild": { 1133 "$ref": "#/definitions/corev1alpha1TiltBuild", 1134 "title": "RunningTiltBuild reports the currently running version of tilt\nthat this UI is talking to.\n+optional" 1135 }, 1136 "suggestedTiltVersion": { 1137 "type": "string", 1138 "title": "SuggestedTiltVersion tells the UI the recommended version for this\nuser. If the version is different than what's running, the UI\nmay display a prompt to upgrade.\n+optional" 1139 }, 1140 "versionSettings": { 1141 "$ref": "#/definitions/corev1alpha1VersionSettings", 1142 "title": "VersionSettings indicates whether version updates have been enabled/disabled\nfrom the Tiltfile.\n+optional" 1143 }, 1144 "tiltCloudUsername": { 1145 "type": "string", 1146 "description": "TiltCloudUsername reports the username if the user is signed into\nTiltCloud.\n\ndeprecated: no longer populated\n\n+optional" 1147 }, 1148 "tiltCloudTeamName": { 1149 "type": "string", 1150 "description": "TiltCloudUsername reports the human-readable team name if the user is\nsigned into TiltCloud and the Tiltfile declares a team.\n\ndeprecated: no longer populated\n\n+optional" 1151 }, 1152 "tiltCloudSchemeHost": { 1153 "type": "string", 1154 "description": "deprecated: no longer populated\n\n+optional", 1155 "title": "TiltCloudSchemeHost reports the base URL of the Tilt Cloud instance\nassociated with this Tilt process. Usually https://cloud.tilt.dev" 1156 }, 1157 "tiltCloudTeamID": { 1158 "type": "string", 1159 "description": "TiltCloudTeamID reports the unique team id if the user is signed into\nTiltCloud and the Tiltfile declares a team.\n\ndeprecated: no longer populated\n\n+optional" 1160 }, 1161 "fatalError": { 1162 "type": "string", 1163 "title": "A FatalError is an error that forces Tilt to stop its control loop.\nThe API server will stay up and continue to serve the UI, but\nno further builds will happen.\n+optional" 1164 }, 1165 "tiltStartTime": { 1166 "type": "string", "format": "date-time", 1167 "title": "The time that this instance of tilt started.\nClients can use this to determine if the API server has restarted\nand all the objects need to be refreshed.\n+optional" 1168 }, 1169 "tiltfileKey": { 1170 "type": "string", 1171 "title": "An identifier for the Tiltfile that is running.\nClients can use this to store data associated with a particular\nproject in LocalStorage or other persistent storage.\n+optional" 1172 } 1173 }, 1174 "title": "UISessionStatus defines the observed state of UISession" 1175 }, 1176 "v1alpha1UITextInputSpec": { 1177 "type": "object", 1178 "properties": { 1179 "defaultValue": { 1180 "type": "string", 1181 "description": "Initial value for this field.\n\n+optional" 1182 }, 1183 "placeholder": { 1184 "type": "string", 1185 "description": "A short hint that describes the expected input of this field.\n\n+optional" 1186 } 1187 }, 1188 "description": "Describes a text input field attached to a button." 1189 }, 1190 "v1alpha1UITextInputStatus": { 1191 "type": "object", 1192 "properties": { 1193 "value": { 1194 "type": "string", 1195 "description": "The content of the text input." 1196 } 1197 } 1198 }, 1199 "webviewAckWebsocketRequest": { 1200 "type": "object", 1201 "properties": { 1202 "to_checkpoint": { 1203 "type": "integer", 1204 "format": "int32", 1205 "title": "The to_checkpoint on the received LogList" 1206 }, 1207 "tilt_start_time": { 1208 "type": "string", 1209 "format": "date-time", 1210 "description": "Allows us to synchronize on a running Tilt instance,\nso we can tell when we're talking to the same Tilt." 1211 } 1212 }, 1213 "description": "NOTE(nick): This is obsolete.\n\nOur websocket service has two kinds of messages:\n1) On initialization, we send down the complete view state\n2) On every change, we send down the resources that have\n changed since the last send()." 1214 }, 1215 "webviewAckWebsocketResponse": { 1216 "type": "object" 1217 }, 1218 "webviewBuildRecord": { 1219 "type": "object", 1220 "properties": { 1221 "error": { 1222 "type": "string" 1223 }, 1224 "warnings": { 1225 "type": "array", 1226 "items": { 1227 "type": "string" 1228 } 1229 }, 1230 "start_time": { 1231 "type": "string", 1232 "format": "date-time" 1233 }, 1234 "finish_time": { 1235 "type": "string", 1236 "format": "date-time" 1237 }, 1238 "is_crash_rebuild": { 1239 "type": "boolean" 1240 }, 1241 "span_id": { 1242 "type": "string", 1243 "description": "The span id for this build record's logs in the main logstore." 1244 } 1245 } 1246 }, 1247 "webviewK8sResourceInfo": { 1248 "type": "object", 1249 "properties": { 1250 "pod_name": { 1251 "type": "string" 1252 }, 1253 "pod_creation_time": { 1254 "type": "string" 1255 }, 1256 "pod_update_start_time": { 1257 "type": "string" 1258 }, 1259 "pod_status": { 1260 "type": "string" 1261 }, 1262 "pod_status_message": { 1263 "type": "string" 1264 }, 1265 "all_containers_ready": { 1266 "type": "boolean" 1267 }, 1268 "pod_restarts": { 1269 "type": "integer", 1270 "format": "int32" 1271 }, 1272 "span_id": { 1273 "type": "string", 1274 "title": "The span id for this pod's logs in the main logstore" 1275 }, 1276 "display_names": { 1277 "type": "array", 1278 "items": { 1279 "type": "string" 1280 } 1281 } 1282 } 1283 }, 1284 "webviewLink": { 1285 "type": "object", 1286 "properties": { 1287 "url": { 1288 "type": "string" 1289 }, 1290 "name": { 1291 "type": "string" 1292 } 1293 } 1294 }, 1295 "webviewLocalResourceInfo": { 1296 "type": "object", 1297 "properties": { 1298 "pid": { 1299 "type": "string", 1300 "format": "int64" 1301 }, 1302 "is_test": { 1303 "type": "boolean" 1304 } 1305 } 1306 }, 1307 "webviewLogLevel": { 1308 "type": "string", 1309 "enum": [ 1310 "NONE", 1311 "INFO", 1312 "VERBOSE", 1313 "DEBUG", 1314 "WARN", 1315 "ERROR" 1316 ], 1317 "default": "NONE", 1318 "description": " - NONE: For backwards-compatibility, the int value doesn't say\nanything about relative severity." 1319 }, 1320 "webviewLogList": { 1321 "type": "object", 1322 "properties": { 1323 "spans": { 1324 "type": "object", 1325 "additionalProperties": { 1326 "$ref": "#/definitions/webviewLogSpan" 1327 } 1328 }, 1329 "segments": { 1330 "type": "array", 1331 "items": { 1332 "$ref": "#/definitions/webviewLogSegment" 1333 } 1334 }, 1335 "from_checkpoint": { 1336 "type": "integer", 1337 "format": "int32", 1338 "description": "[from_checkpoint, to_checkpoint)\n\nAn interval of [0, 0) means that the server isn't using\nthe incremental load protocol.\n\nAn interval of [-1, -1) means that the server doesn't have new logs\nto send down.", 1339 "title": "from_checkpoint and to_checkpoint express an interval on the\ncentral log-store, with an inclusive start and an exclusive end" 1340 }, 1341 "to_checkpoint": { 1342 "type": "integer", 1343 "format": "int32" 1344 } 1345 } 1346 }, 1347 "webviewLogSegment": { 1348 "type": "object", 1349 "properties": { 1350 "span_id": { 1351 "type": "string" 1352 }, 1353 "time": { 1354 "type": "string", 1355 "format": "date-time" 1356 }, 1357 "text": { 1358 "type": "string" 1359 }, 1360 "level": { 1361 "$ref": "#/definitions/webviewLogLevel" 1362 }, 1363 "anchor": { 1364 "type": "boolean", 1365 "description": "When we store warnings in the LogStore, we break them up into lines and\nstore them as a series of line segments. 'anchor' marks the beginning of a\nseries of logs that should be kept together.\n\nAnchor warning1, line1\n warning1, line2\nAnchor warning2, line1" 1366 }, 1367 "fields": { 1368 "type": "object", 1369 "additionalProperties": { 1370 "type": "string" 1371 }, 1372 "description": "Context-specific optional fields for a log segment.\nUsed for experimenting with new types of log metadata." 1373 } 1374 } 1375 }, 1376 "webviewLogSpan": { 1377 "type": "object", 1378 "properties": { 1379 "manifest_name": { 1380 "type": "string" 1381 } 1382 } 1383 }, 1384 "webviewResource": { 1385 "type": "object", 1386 "properties": { 1387 "name": { 1388 "type": "string" 1389 }, 1390 "last_deploy_time": { 1391 "type": "string", 1392 "format": "date-time" 1393 }, 1394 "trigger_mode": { 1395 "type": "integer", 1396 "format": "int32" 1397 }, 1398 "build_history": { 1399 "type": "array", 1400 "items": { 1401 "$ref": "#/definitions/webviewBuildRecord" 1402 } 1403 }, 1404 "current_build": { 1405 "$ref": "#/definitions/webviewBuildRecord" 1406 }, 1407 "pending_build_since": { 1408 "type": "string", 1409 "format": "date-time" 1410 }, 1411 "has_pending_changes": { 1412 "type": "boolean" 1413 }, 1414 "endpoint_links": { 1415 "type": "array", 1416 "items": { 1417 "$ref": "#/definitions/webviewLink" 1418 } 1419 }, 1420 "podID": { 1421 "type": "string" 1422 }, 1423 "k8s_resource_info": { 1424 "$ref": "#/definitions/webviewK8sResourceInfo" 1425 }, 1426 "local_resource_info": { 1427 "$ref": "#/definitions/webviewLocalResourceInfo" 1428 }, 1429 "runtime_status": { 1430 "type": "string" 1431 }, 1432 "update_status": { 1433 "type": "string" 1434 }, 1435 "is_tiltfile": { 1436 "type": "boolean" 1437 }, 1438 "specs": { 1439 "type": "array", 1440 "items": { 1441 "$ref": "#/definitions/webviewTargetSpec" 1442 } 1443 }, 1444 "queued": { 1445 "type": "boolean" 1446 } 1447 } 1448 }, 1449 "webviewSnapshot": { 1450 "type": "object", 1451 "properties": { 1452 "view": { 1453 "$ref": "#/definitions/webviewView" 1454 }, 1455 "is_sidebar_closed": { 1456 "type": "boolean" 1457 }, 1458 "path": { 1459 "type": "string" 1460 }, 1461 "snapshot_highlight": { 1462 "$ref": "#/definitions/webviewSnapshotHighlight" 1463 }, 1464 "snapshot_link": { 1465 "type": "string" 1466 }, 1467 "created_at": { 1468 "type": "string", 1469 "format": "date-time" 1470 } 1471 } 1472 }, 1473 "webviewSnapshotHighlight": { 1474 "type": "object", 1475 "properties": { 1476 "beginning_logID": { 1477 "type": "string" 1478 }, 1479 "ending_logID": { 1480 "type": "string" 1481 }, 1482 "text": { 1483 "type": "string" 1484 } 1485 } 1486 }, 1487 "webviewTargetSpec": { 1488 "type": "object", 1489 "properties": { 1490 "id": { 1491 "type": "string" 1492 }, 1493 "type": { 1494 "$ref": "#/definitions/webviewTargetType" 1495 }, 1496 "has_live_update": { 1497 "type": "boolean" 1498 } 1499 } 1500 }, 1501 "webviewTargetType": { 1502 "type": "string", 1503 "enum": [ 1504 "TARGET_TYPE_UNSPECIFIED", 1505 "TARGET_TYPE_IMAGE", 1506 "TARGET_TYPE_K8S", 1507 "TARGET_TYPE_DOCKER_COMPOSE", 1508 "TARGET_TYPE_LOCAL" 1509 ], 1510 "default": "TARGET_TYPE_UNSPECIFIED", 1511 "title": "Correspond to implementations of the TargetSpec interface" 1512 }, 1513 "webviewTiltBuild": { 1514 "type": "object", 1515 "properties": { 1516 "version": { 1517 "type": "string" 1518 }, 1519 "commitSHA": { 1520 "type": "string" 1521 }, 1522 "date": { 1523 "type": "string" 1524 }, 1525 "dev": { 1526 "type": "boolean" 1527 } 1528 } 1529 }, 1530 "webviewUploadSnapshotResponse": { 1531 "type": "object", 1532 "properties": { 1533 "url": { 1534 "type": "string" 1535 } 1536 } 1537 }, 1538 "webviewVersionSettings": { 1539 "type": "object", 1540 "properties": { 1541 "check_updates": { 1542 "type": "boolean" 1543 } 1544 } 1545 }, 1546 "webviewView": { 1547 "type": "object", 1548 "properties": { 1549 "log": { 1550 "type": "string" 1551 }, 1552 "resources": { 1553 "type": "array", 1554 "items": { 1555 "$ref": "#/definitions/webviewResource" 1556 } 1557 }, 1558 "DEPRECATED_log_timestamps": { 1559 "type": "boolean", 1560 "description": "We used to have a setting that allowed users to dynamically\nprepend timestamps in logs." 1561 }, 1562 "feature_flags": { 1563 "type": "object", 1564 "additionalProperties": { 1565 "type": "boolean" 1566 } 1567 }, 1568 "needs_analytics_nudge": { 1569 "type": "boolean" 1570 }, 1571 "running_tilt_build": { 1572 "$ref": "#/definitions/webviewTiltBuild" 1573 }, 1574 "DEPRECATED_latest_tilt_build": { 1575 "$ref": "#/definitions/webviewTiltBuild" 1576 }, 1577 "suggested_tilt_version": { 1578 "type": "string" 1579 }, 1580 "version_settings": { 1581 "$ref": "#/definitions/webviewVersionSettings" 1582 }, 1583 "tilt_cloud_username": { 1584 "type": "string" 1585 }, 1586 "tilt_cloud_team_name": { 1587 "type": "string" 1588 }, 1589 "tilt_cloud_schemeHost": { 1590 "type": "string" 1591 }, 1592 "tilt_cloud_teamID": { 1593 "type": "string" 1594 }, 1595 "fatal_error": { 1596 "type": "string" 1597 }, 1598 "log_list": { 1599 "$ref": "#/definitions/webviewLogList" 1600 }, 1601 "tilt_start_time": { 1602 "type": "string", 1603 "format": "date-time", 1604 "description": "Allows us to synchronize on a running Tilt instance,\nso we can tell when Tilt restarted." 1605 }, 1606 "tiltfile_key": { 1607 "type": "string", 1608 "title": "an identifier for the tiltfile that is running, so that the web ui can store data per tiltfile" 1609 }, 1610 "ui_session": { 1611 "$ref": "#/definitions/v1alpha1UISession", 1612 "description": "New API-server based data models." 1613 }, 1614 "ui_resources": { 1615 "type": "array", 1616 "items": { 1617 "$ref": "#/definitions/v1alpha1UIResource" 1618 } 1619 }, 1620 "ui_buttons": { 1621 "type": "array", 1622 "items": { 1623 "$ref": "#/definitions/v1alpha1UIButton" 1624 } 1625 }, 1626 "clusters": { 1627 "type": "array", 1628 "items": { 1629 "$ref": "#/definitions/v1alpha1Cluster" 1630 } 1631 }, 1632 "is_complete": { 1633 "type": "boolean", 1634 "description": "indicates that this view is a complete representation of the app\nif false, this view just contains deltas from a previous view." 1635 } 1636 }, 1637 "description": "1) On initialization, we send down the complete view state\n (TiltStartTime, UISession, UIResources, and LogList)\n\n2) On every change, we send down the resources that have\n changed since the last send().\n (new logs and any updated UISession/UIResource objects).\n\nAll other fields are obsolete, but are needed for deserializing\nold snapshots.", 1638 "title": "Our websocket service has two kinds of View messages:" 1639 } 1640 } 1641 }