github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/examples/component-webhooks/capabilities/jackal-types.ts (about)

     1  // To parse this data:
     2  //
     3  //   import { Convert, JackalTypes } from "./file";
     4  //
     5  //   const jackalTypes = Convert.toJackalTypes(json);
     6  //
     7  // These functions will throw an error if the JSON doesn't
     8  // match the expected interface, even if the JSON is valid.
     9  
    10  export interface JackalTypes {
    11      DeployedPackage: DeployedPackage;
    12      JackalPackage:     JackalPackage;
    13      JackalState:       JackalState;
    14  }
    15  
    16  export interface DeployedPackage {
    17      cliVersion:         string;
    18      componentWebhooks?: { [key: string]: { [key: string]: Webhook } };
    19      connectStrings?:    { [key: string]: ConnectString };
    20      data:               JackalPackage;
    21      deployedComponents: DeployedComponent[];
    22      generation:         number;
    23      name:               string;
    24  }
    25  
    26  export interface Webhook {
    27      name:                 string;
    28      observedGeneration:   number;
    29      status:               string;
    30      waitDurationSeconds?: number;
    31  }
    32  
    33  export interface ConnectString {
    34      /**
    35       * Descriptive text that explains what the resource you would be connecting to is used for
    36       */
    37      description: string;
    38      /**
    39       * URL path that gets appended to the k8s port-forward result
    40       */
    41      url: string;
    42  }
    43  
    44  export interface JackalPackage {
    45      /**
    46       * Jackal-generated package build data
    47       */
    48      build?: JackalBuildData;
    49      /**
    50       * List of components to deploy in this package
    51       */
    52      components: JackalComponent[];
    53      /**
    54       * Constant template values applied on deploy for K8s resources
    55       */
    56      constants?: JackalPackageConstant[];
    57      /**
    58       * The kind of Jackal package
    59       */
    60      kind: Kind;
    61      /**
    62       * Package metadata
    63       */
    64      metadata?: JackalMetadata;
    65      /**
    66       * Variable template values applied on deploy for K8s resources
    67       */
    68      variables?: JackalPackageVariable[];
    69  }
    70  
    71  /**
    72   * Jackal-generated package build data
    73   */
    74  export interface JackalBuildData {
    75      /**
    76       * The architecture this package was created on
    77       */
    78      architecture: string;
    79      /**
    80       * Whether this package was created with differential components
    81       */
    82      differential?: boolean;
    83      /**
    84       * List of components that were not included in this package due to differential packaging
    85       */
    86      differentialMissing?: string[];
    87      /**
    88       * The minimum version of Jackal that does not have breaking package structure changes
    89       */
    90      lastNonBreakingVersion?: string;
    91      /**
    92       * Any migrations that have been run on this package
    93       */
    94      migrations?: string[];
    95      /**
    96       * Any registry domains that were overridden on package create when pulling images
    97       */
    98      registryOverrides?: { [key: string]: string };
    99      /**
   100       * The machine name that created this package
   101       */
   102      terminal: string;
   103      /**
   104       * The timestamp when this package was created
   105       */
   106      timestamp: string;
   107      /**
   108       * The username who created this package
   109       */
   110      user: string;
   111      /**
   112       * The version of Jackal used to build this package
   113       */
   114      version: string;
   115  }
   116  
   117  export interface JackalComponent {
   118      /**
   119       * Custom commands to run at various stages of a package lifecycle
   120       */
   121      actions?: JackalComponentActions;
   122      /**
   123       * Helm charts to install during package deploy
   124       */
   125      charts?: JackalChart[];
   126      /**
   127       * [Deprecated] Specify a path to a public key to validate signed online resources. This
   128       * will be removed in Jackal v1.0.0.
   129       */
   130      cosignKeyPath?: string;
   131      /**
   132       * Datasets to inject into a container in the target cluster
   133       */
   134      dataInjections?: JackalDataInjection[];
   135      /**
   136       * Determines the default Y/N state for installing this component on package deploy
   137       */
   138      default?: boolean;
   139      /**
   140       * Message to include during package deploy describing the purpose of this component
   141       */
   142      description?: string;
   143      /**
   144       * Extend component functionality with additional features
   145       */
   146      extensions?: JackalComponentExtensions;
   147      /**
   148       * Files or folders to place on disk during package deployment
   149       */
   150      files?: JackalFile[];
   151      /**
   152       * [Deprecated] Create a user selector field based on all components in the same group. This
   153       * will be removed in Jackal v1.0.0. Consider using 'only.flavor' instead.
   154       */
   155      group?: string;
   156      /**
   157       * List of OCI images to include in the package
   158       */
   159      images?: string[];
   160      /**
   161       * Import a component from another Jackal package
   162       */
   163      import?: JackalComponentImport;
   164      /**
   165       * Kubernetes manifests to be included in a generated Helm chart on package deploy
   166       */
   167      manifests?: JackalManifest[];
   168      /**
   169       * The name of the component
   170       */
   171      name: string;
   172      /**
   173       * Filter when this component is included in package creation or deployment
   174       */
   175      only?: JackalComponentOnlyTarget;
   176      /**
   177       * List of git repos to include in the package
   178       */
   179      repos?: string[];
   180      /**
   181       * Do not prompt user to install this component
   182       */
   183      required?: boolean;
   184      /**
   185       * [Deprecated] (replaced by actions) Custom commands to run before or after package
   186       * deployment.  This will be removed in Jackal v1.0.0.
   187       */
   188      scripts?: DeprecatedJackalComponentScripts;
   189  }
   190  
   191  /**
   192   * Custom commands to run at various stages of a package lifecycle
   193   */
   194  export interface JackalComponentActions {
   195      /**
   196       * Actions to run during package creation
   197       */
   198      onCreate?: JackalComponentActionSet;
   199      /**
   200       * Actions to run during package deployment
   201       */
   202      onDeploy?: JackalComponentActionSet;
   203      /**
   204       * Actions to run during package removal
   205       */
   206      onRemove?: JackalComponentActionSet;
   207  }
   208  
   209  /**
   210   * Actions to run during package creation
   211   *
   212   * Actions to run during package deployment
   213   *
   214   * Actions to run during package removal
   215   */
   216  export interface JackalComponentActionSet {
   217      /**
   218       * Actions to run at the end of an operation
   219       */
   220      after?: JackalComponentAction[];
   221      /**
   222       * Actions to run at the start of an operation
   223       */
   224      before?: JackalComponentAction[];
   225      /**
   226       * Default configuration for all actions in this set
   227       */
   228      defaults?: JackalComponentActionDefaults;
   229      /**
   230       * Actions to run if all operations fail
   231       */
   232      onFailure?: JackalComponentAction[];
   233      /**
   234       * Actions to run if all operations succeed
   235       */
   236      onSuccess?: JackalComponentAction[];
   237  }
   238  
   239  export interface JackalComponentAction {
   240      /**
   241       * The command to run. Must specify either cmd or wait for the action to do anything.
   242       */
   243      cmd?: string;
   244      /**
   245       * Description of the action to be displayed during package execution instead of the command
   246       */
   247      description?: string;
   248      /**
   249       * The working directory to run the command in (default is CWD)
   250       */
   251      dir?: string;
   252      /**
   253       * Additional environment variables to set for the command
   254       */
   255      env?: string[];
   256      /**
   257       * Retry the command if it fails up to given number of times (default 0)
   258       */
   259      maxRetries?: number;
   260      /**
   261       * Timeout in seconds for the command (default to 0
   262       */
   263      maxTotalSeconds?: number;
   264      /**
   265       * Hide the output of the command during package deployment (default false)
   266       */
   267      mute?: boolean;
   268      /**
   269       * [Deprecated] (replaced by setVariables) (onDeploy/cmd only) The name of a variable to
   270       * update with the output of the command. This variable will be available to all remaining
   271       * actions and components in the package. This will be removed in Jackal v1.0.0
   272       */
   273      setVariable?: string;
   274      /**
   275       * (onDeploy/cmd only) An array of variables to update with the output of the command. These
   276       * variables will be available to all remaining actions and components in the package.
   277       */
   278      setVariables?: JackalComponentActionSetVariable[];
   279      /**
   280       * (cmd only) Indicates a preference for a shell for the provided cmd to be executed in on
   281       * supported operating systems
   282       */
   283      shell?: JackalComponentActionShell;
   284      /**
   285       * Wait for a condition to be met before continuing. Must specify either cmd or wait for the
   286       * action. See the 'jackal tools wait-for' command for more info.
   287       */
   288      wait?: JackalComponentActionWait;
   289  }
   290  
   291  export interface JackalComponentActionSetVariable {
   292      /**
   293       * Whether to automatically indent the variable's value (if multiline) when templating.
   294       * Based on the number of chars before the start of ###JACKAL_VAR_.
   295       */
   296      autoIndent?: boolean;
   297      /**
   298       * The name to be used for the variable
   299       */
   300      name: string;
   301      /**
   302       * An optional regex pattern that a variable value must match before a package deployment
   303       * can continue.
   304       */
   305      pattern?: string;
   306      /**
   307       * Whether to mark this variable as sensitive to not print it in the Jackal log
   308       */
   309      sensitive?: boolean;
   310      /**
   311       * Changes the handling of a variable to load contents differently (i.e. from a file rather
   312       * than as a raw variable - templated files should be kept below 1 MiB)
   313       */
   314      type?: Type;
   315  }
   316  
   317  /**
   318   * Changes the handling of a variable to load contents differently (i.e. from a file rather
   319   * than as a raw variable - templated files should be kept below 1 MiB)
   320   */
   321  export enum Type {
   322      File = "file",
   323      Raw = "raw",
   324  }
   325  
   326  /**
   327   * (cmd only) Indicates a preference for a shell for the provided cmd to be executed in on
   328   * supported operating systems
   329   */
   330  export interface JackalComponentActionShell {
   331      /**
   332       * (default 'sh') Indicates a preference for the shell to use on macOS systems
   333       */
   334      darwin?: string;
   335      /**
   336       * (default 'sh') Indicates a preference for the shell to use on Linux systems
   337       */
   338      linux?: string;
   339      /**
   340       * (default 'powershell') Indicates a preference for the shell to use on Windows systems
   341       * (note that choosing 'cmd' will turn off migrations like touch -> New-Item)
   342       */
   343      windows?: string;
   344  }
   345  
   346  /**
   347   * Wait for a condition to be met before continuing. Must specify either cmd or wait for the
   348   * action. See the 'jackal tools wait-for' command for more info.
   349   */
   350  export interface JackalComponentActionWait {
   351      /**
   352       * Wait for a condition to be met in the cluster before continuing. Only one of cluster or
   353       * network can be specified.
   354       */
   355      cluster?: JackalComponentActionWaitCluster;
   356      /**
   357       * Wait for a condition to be met on the network before continuing. Only one of cluster or
   358       * network can be specified.
   359       */
   360      network?: JackalComponentActionWaitNetwork;
   361  }
   362  
   363  /**
   364   * Wait for a condition to be met in the cluster before continuing. Only one of cluster or
   365   * network can be specified.
   366   */
   367  export interface JackalComponentActionWaitCluster {
   368      /**
   369       * The condition or jsonpath state to wait for; defaults to exist
   370       */
   371      condition?: string;
   372      /**
   373       * The kind of resource to wait for
   374       */
   375      kind: string;
   376      /**
   377       * The name of the resource or selector to wait for
   378       */
   379      name: string;
   380      /**
   381       * The namespace of the resource to wait for
   382       */
   383      namespace?: string;
   384  }
   385  
   386  /**
   387   * Wait for a condition to be met on the network before continuing. Only one of cluster or
   388   * network can be specified.
   389   */
   390  export interface JackalComponentActionWaitNetwork {
   391      /**
   392       * The address to wait for
   393       */
   394      address: string;
   395      /**
   396       * The HTTP status code to wait for if using http or https
   397       */
   398      code?: number;
   399      /**
   400       * The protocol to wait for
   401       */
   402      protocol: Protocol;
   403  }
   404  
   405  /**
   406   * The protocol to wait for
   407   */
   408  export enum Protocol {
   409      HTTP = "http",
   410      HTTPS = "https",
   411      TCP = "tcp",
   412  }
   413  
   414  /**
   415   * Default configuration for all actions in this set
   416   */
   417  export interface JackalComponentActionDefaults {
   418      /**
   419       * Working directory for commands (default CWD)
   420       */
   421      dir?: string;
   422      /**
   423       * Additional environment variables for commands
   424       */
   425      env?: string[];
   426      /**
   427       * Retry commands given number of times if they fail (default 0)
   428       */
   429      maxRetries?: number;
   430      /**
   431       * Default timeout in seconds for commands (default to 0
   432       */
   433      maxTotalSeconds?: number;
   434      /**
   435       * Hide the output of commands during execution (default false)
   436       */
   437      mute?: boolean;
   438      /**
   439       * (cmd only) Indicates a preference for a shell for the provided cmd to be executed in on
   440       * supported operating systems
   441       */
   442      shell?: JackalComponentActionShell;
   443  }
   444  
   445  export interface JackalChart {
   446      /**
   447       * The path to the chart in the repo if using a git repo instead of a helm repo
   448       */
   449      gitPath?: string;
   450      /**
   451       * The path to the chart folder
   452       */
   453      localPath?: string;
   454      /**
   455       * The name of the chart to deploy; this should be the name of the chart as it is installed
   456       * in the helm repo
   457       */
   458      name: string;
   459      /**
   460       * The namespace to deploy the chart to
   461       */
   462      namespace: string;
   463      /**
   464       * Whether to not wait for chart resources to be ready before continuing
   465       */
   466      noWait?: boolean;
   467      /**
   468       * The name of the release to create; defaults to the name of the chart
   469       */
   470      releaseName?: string;
   471      /**
   472       * The URL of the OCI registry, chart repository, or git repo where the helm chart is stored
   473       */
   474      url?: string;
   475      /**
   476       * List of local values file paths or remote URLs to include in the package; these will be
   477       * merged together
   478       */
   479      valuesFiles?: string[];
   480      /**
   481       * The version of the chart to deploy; for git-based charts this is also the tag of the git
   482       * repo
   483       */
   484      version?: string;
   485  }
   486  
   487  export interface JackalDataInjection {
   488      /**
   489       * Compress the data before transmitting using gzip.  Note: this requires support for
   490       * tar/gzip locally and in the target image.
   491       */
   492      compress?: boolean;
   493      /**
   494       * Either a path to a local folder/file or a remote URL of a file to inject into the given
   495       * target pod + container
   496       */
   497      source: string;
   498      /**
   499       * The target pod + container to inject the data into
   500       */
   501      target: JackalContainerTarget;
   502  }
   503  
   504  /**
   505   * The target pod + container to inject the data into
   506   */
   507  export interface JackalContainerTarget {
   508      /**
   509       * The container name to target for data injection
   510       */
   511      container: string;
   512      /**
   513       * The namespace to target for data injection
   514       */
   515      namespace: string;
   516      /**
   517       * The path within the container to copy the data into
   518       */
   519      path: string;
   520      /**
   521       * The K8s selector to target for data injection
   522       */
   523      selector: string;
   524  }
   525  
   526  /**
   527   * Extend component functionality with additional features
   528   */
   529  export interface JackalComponentExtensions {
   530      /**
   531       * Configurations for installing Big Bang and Flux in the cluster
   532       */
   533      bigbang?: BigBang;
   534  }
   535  
   536  /**
   537   * Configurations for installing Big Bang and Flux in the cluster
   538   */
   539  export interface BigBang {
   540      /**
   541       * Optional paths to Flux kustomize strategic merge patch files
   542       */
   543      fluxPatchFiles?: string[];
   544      /**
   545       * Override repo to pull Big Bang from instead of Repo One
   546       */
   547      repo?: string;
   548      /**
   549       * Whether to skip deploying flux; Defaults to false
   550       */
   551      skipFlux?: boolean;
   552      /**
   553       * The list of values files to pass to Big Bang; these will be merged together
   554       */
   555      valuesFiles?: string[];
   556      /**
   557       * The version of Big Bang to use
   558       */
   559      version: string;
   560  }
   561  
   562  export interface JackalFile {
   563      /**
   564       * (files only) Determines if the file should be made executable during package deploy
   565       */
   566      executable?: boolean;
   567      /**
   568       * Local folder or file to be extracted from a 'source' archive
   569       */
   570      extractPath?: string;
   571      /**
   572       * (files only) Optional SHA256 checksum of the file
   573       */
   574      shasum?: string;
   575      /**
   576       * Local folder or file path or remote URL to pull into the package
   577       */
   578      source: string;
   579      /**
   580       * List of symlinks to create during package deploy
   581       */
   582      symlinks?: string[];
   583      /**
   584       * The absolute or relative path where the file or folder should be copied to during package
   585       * deploy
   586       */
   587      target: string;
   588  }
   589  
   590  /**
   591   * Import a component from another Jackal package
   592   */
   593  export interface JackalComponentImport {
   594      /**
   595       * The name of the component to import from the referenced jackal.yaml
   596       */
   597      name?: string;
   598      /**
   599       * The relative path to a directory containing a jackal.yaml to import from
   600       */
   601      path?: string;
   602      /**
   603       * [beta] The URL to a Jackal package to import via OCI
   604       */
   605      url?: string;
   606  }
   607  
   608  export interface JackalManifest {
   609      /**
   610       * List of local K8s YAML files or remote URLs to deploy (in order)
   611       */
   612      files?: string[];
   613      /**
   614       * List of local kustomization paths or remote URLs to include in the package
   615       */
   616      kustomizations?: string[];
   617      /**
   618       * Allow traversing directory above the current directory if needed for kustomization
   619       */
   620      kustomizeAllowAnyDirectory?: boolean;
   621      /**
   622       * A name to give this collection of manifests; this will become the name of the
   623       * dynamically-created helm chart
   624       */
   625      name: string;
   626      /**
   627       * The namespace to deploy the manifests to
   628       */
   629      namespace?: string;
   630      /**
   631       * Whether to not wait for manifest resources to be ready before continuing
   632       */
   633      noWait?: boolean;
   634  }
   635  
   636  /**
   637   * Filter when this component is included in package creation or deployment
   638   */
   639  export interface JackalComponentOnlyTarget {
   640      /**
   641       * Only deploy component to specified clusters
   642       */
   643      cluster?: JackalComponentOnlyCluster;
   644      /**
   645       * Only include this component when a matching '--flavor' is specified on 'jackal package
   646       * create'
   647       */
   648      flavor?: string;
   649      /**
   650       * Only deploy component to specified OS
   651       */
   652      localOS?: LocalOS;
   653  }
   654  
   655  /**
   656   * Only deploy component to specified clusters
   657   */
   658  export interface JackalComponentOnlyCluster {
   659      /**
   660       * Only create and deploy to clusters of the given architecture
   661       */
   662      architecture?: Architecture;
   663      /**
   664       * A list of kubernetes distros this package works with (Reserved for future use)
   665       */
   666      distros?: string[];
   667  }
   668  
   669  /**
   670   * Only create and deploy to clusters of the given architecture
   671   */
   672  export enum Architecture {
   673      Amd64 = "amd64",
   674      Arm64 = "arm64",
   675  }
   676  
   677  /**
   678   * Only deploy component to specified OS
   679   */
   680  export enum LocalOS {
   681      Darwin = "darwin",
   682      Linux = "linux",
   683      Windows = "windows",
   684  }
   685  
   686  /**
   687   * [Deprecated] (replaced by actions) Custom commands to run before or after package
   688   * deployment.  This will be removed in Jackal v1.0.0.
   689   */
   690  export interface DeprecatedJackalComponentScripts {
   691      /**
   692       * Scripts to run after the component successfully deploys
   693       */
   694      after?: string[];
   695      /**
   696       * Scripts to run before the component is deployed
   697       */
   698      before?: string[];
   699      /**
   700       * Scripts to run before the component is added during package create
   701       */
   702      prepare?: string[];
   703      /**
   704       * Retry the script if it fails
   705       */
   706      retry?: boolean;
   707      /**
   708       * Show the output of the script during package deployment
   709       */
   710      showOutput?: boolean;
   711      /**
   712       * Timeout in seconds for the script
   713       */
   714      timeoutSeconds?: number;
   715  }
   716  
   717  export interface JackalPackageConstant {
   718      /**
   719       * Whether to automatically indent the variable's value (if multiline) when templating.
   720       * Based on the number of chars before the start of ###JACKAL_CONST_.
   721       */
   722      autoIndent?: boolean;
   723      /**
   724       * A description of the constant to explain its purpose on package create or deploy
   725       * confirmation prompts
   726       */
   727      description?: string;
   728      /**
   729       * The name to be used for the constant
   730       */
   731      name: string;
   732      /**
   733       * An optional regex pattern that a constant value must match before a package can be
   734       * created.
   735       */
   736      pattern?: string;
   737      /**
   738       * The value to set for the constant during deploy
   739       */
   740      value: string;
   741  }
   742  
   743  /**
   744   * The kind of Jackal package
   745   */
   746  export enum Kind {
   747      JackalInitConfig = "JackalInitConfig",
   748      JackalPackageConfig = "JackalPackageConfig",
   749  }
   750  
   751  /**
   752   * Package metadata
   753   */
   754  export interface JackalMetadata {
   755      /**
   756       * Checksum of a checksums.txt file that contains checksums all the layers within the
   757       * package.
   758       */
   759      aggregateChecksum?: string;
   760      /**
   761       * The target cluster architecture for this package
   762       */
   763      architecture?: string;
   764      /**
   765       * Comma-separated list of package authors (including contact info)
   766       */
   767      authors?: string;
   768      /**
   769       * Additional information about this package
   770       */
   771      description?: string;
   772      /**
   773       * Link to package documentation when online
   774       */
   775      documentation?: string;
   776      /**
   777       * An image URL to embed in this package (Reserved for future use in Jackal UI)
   778       */
   779      image?: string;
   780      /**
   781       * Name to identify this Jackal package
   782       */
   783      name: string;
   784      /**
   785       * Link to package source code when online
   786       */
   787      source?: string;
   788      /**
   789       * Disable compression of this package
   790       */
   791      uncompressed?: boolean;
   792      /**
   793       * Link to package information when online
   794       */
   795      url?: string;
   796      /**
   797       * Name of the distributing entity, organization or individual.
   798       */
   799      vendor?: string;
   800      /**
   801       * Generic string set by a package author to track the package version (Note:
   802       * JackalInitConfigs will always be versioned to the CLIVersion they were created with)
   803       */
   804      version?: string;
   805      /**
   806       * Yaml OnLy Online (YOLO): True enables deploying a Jackal package without first running jackal
   807       * init against the cluster. This is ideal for connected environments where you want to use
   808       * existing VCS and container registries.
   809       */
   810      yolo?: boolean;
   811  }
   812  
   813  export interface JackalPackageVariable {
   814      /**
   815       * Whether to automatically indent the variable's value (if multiline) when templating.
   816       * Based on the number of chars before the start of ###JACKAL_VAR_.
   817       */
   818      autoIndent?: boolean;
   819      /**
   820       * The default value to use for the variable
   821       */
   822      default?: string;
   823      /**
   824       * A description of the variable to be used when prompting the user a value
   825       */
   826      description?: string;
   827      /**
   828       * The name to be used for the variable
   829       */
   830      name: string;
   831      /**
   832       * An optional regex pattern that a variable value must match before a package can be
   833       * deployed.
   834       */
   835      pattern?: string;
   836      /**
   837       * Whether to prompt the user for input for this variable
   838       */
   839      prompt?: boolean;
   840      /**
   841       * Whether to mark this variable as sensitive to not print it in the Jackal log
   842       */
   843      sensitive?: boolean;
   844      /**
   845       * Changes the handling of a variable to load contents differently (i.e. from a file rather
   846       * than as a raw variable - templated files should be kept below 1 MiB)
   847       */
   848      type?: Type;
   849  }
   850  
   851  export interface DeployedComponent {
   852      installedCharts:    InstalledChart[];
   853      name:               string;
   854      observedGeneration: number;
   855      status:             string;
   856  }
   857  
   858  export interface InstalledChart {
   859      chartName: string;
   860      namespace: string;
   861  }
   862  
   863  export interface JackalState {
   864      agentTLS: GeneratedPKI;
   865      /**
   866       * Machine architecture of the k8s node(s)
   867       */
   868      architecture: string;
   869      /**
   870       * Information about the artifact registry Jackal is configured to use
   871       */
   872      artifactServer: ArtifactServerInfo;
   873      /**
   874       * K8s distribution of the cluster Jackal was deployed to
   875       */
   876      distro: string;
   877      /**
   878       * Information about the repository Jackal is configured to use
   879       */
   880      gitServer: GitServerInfo;
   881      /**
   882       * Secret value that the internal Grafana server was seeded with
   883       */
   884      loggingSecret: string;
   885      /**
   886       * Information about the container registry Jackal is configured to use
   887       */
   888      registryInfo: RegistryInfo;
   889      storageClass: string;
   890      /**
   891       * Indicates if Jackal was initialized while deploying its own k8s cluster
   892       */
   893      jackalAppliance: boolean;
   894  }
   895  
   896  export interface GeneratedPKI {
   897      ca:   string;
   898      cert: string;
   899      key:  string;
   900  }
   901  
   902  /**
   903   * Information about the artifact registry Jackal is configured to use
   904   */
   905  export interface ArtifactServerInfo {
   906      /**
   907       * URL address of the artifact registry
   908       */
   909      address: string;
   910      /**
   911       * Indicates if we are using a artifact registry that Jackal is directly managing
   912       */
   913      internalServer: boolean;
   914      /**
   915       * Password of a user with push access to the artifact registry
   916       */
   917      pushPassword: string;
   918      /**
   919       * Username of a user with push access to the artifact registry
   920       */
   921      pushUsername: string;
   922  }
   923  
   924  /**
   925   * Information about the repository Jackal is configured to use
   926   */
   927  export interface GitServerInfo {
   928      /**
   929       * URL address of the git server
   930       */
   931      address: string;
   932      /**
   933       * Indicates if we are using a git server that Jackal is directly managing
   934       */
   935      internalServer: boolean;
   936      /**
   937       * Password of a user with pull-only access to the git repository. If not provided for an
   938       * external repository then the push-user is used
   939       */
   940      pullPassword: string;
   941      /**
   942       * Username of a user with pull-only access to the git repository. If not provided for an
   943       * external repository then the push-user is used
   944       */
   945      pullUsername: string;
   946      /**
   947       * Password of a user with push access to the git repository
   948       */
   949      pushPassword: string;
   950      /**
   951       * Username of a user with push access to the git repository
   952       */
   953      pushUsername: string;
   954  }
   955  
   956  /**
   957   * Information about the container registry Jackal is configured to use
   958   */
   959  export interface RegistryInfo {
   960      /**
   961       * URL address of the registry
   962       */
   963      address: string;
   964      /**
   965       * Indicates if we are using a registry that Jackal is directly managing
   966       */
   967      internalRegistry: boolean;
   968      /**
   969       * Nodeport of the registry. Only needed if the registry is running inside the kubernetes
   970       * cluster
   971       */
   972      nodePort: number;
   973      /**
   974       * Password of a user with pull-only access to the registry. If not provided for an external
   975       * registry than the push-user is used
   976       */
   977      pullPassword: string;
   978      /**
   979       * Username of a user with pull-only access to the registry. If not provided for an external
   980       * registry than the push-user is used
   981       */
   982      pullUsername: string;
   983      /**
   984       * Password of a user with push access to the registry
   985       */
   986      pushPassword: string;
   987      /**
   988       * Username of a user with push access to the registry
   989       */
   990      pushUsername: string;
   991      /**
   992       * Secret value that the registry was seeded with
   993       */
   994      secret: string;
   995  }
   996  
   997  // Converts JSON strings to/from your types
   998  // and asserts the results of JSON.parse at runtime
   999  export class Convert {
  1000      public static toJackalTypes(json: string): JackalTypes {
  1001          return cast(JSON.parse(json), r("JackalTypes"));
  1002      }
  1003  
  1004      public static jackalTypesToJson(value: JackalTypes): string {
  1005          return JSON.stringify(uncast(value, r("JackalTypes")), null, 2);
  1006      }
  1007  }
  1008  
  1009  function invalidValue(typ: any, val: any, key: any, parent: any = ''): never {
  1010      const prettyTyp = prettyTypeName(typ);
  1011      const parentText = parent ? ` on ${parent}` : '';
  1012      const keyText = key ? ` for key "${key}"` : '';
  1013      throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
  1014  }
  1015  
  1016  function prettyTypeName(typ: any): string {
  1017      if (Array.isArray(typ)) {
  1018          if (typ.length === 2 && typ[0] === undefined) {
  1019              return `an optional ${prettyTypeName(typ[1])}`;
  1020          } else {
  1021              return `one of [${typ.map(a => { return prettyTypeName(a); }).join(", ")}]`;
  1022          }
  1023      } else if (typeof typ === "object" && typ.literal !== undefined) {
  1024          return typ.literal;
  1025      } else {
  1026          return typeof typ;
  1027      }
  1028  }
  1029  
  1030  function jsonToJSProps(typ: any): any {
  1031      if (typ.jsonToJS === undefined) {
  1032          const map: any = {};
  1033          typ.props.forEach((p: any) => map[p.json] = { key: p.js, typ: p.typ });
  1034          typ.jsonToJS = map;
  1035      }
  1036      return typ.jsonToJS;
  1037  }
  1038  
  1039  function jsToJSONProps(typ: any): any {
  1040      if (typ.jsToJSON === undefined) {
  1041          const map: any = {};
  1042          typ.props.forEach((p: any) => map[p.js] = { key: p.json, typ: p.typ });
  1043          typ.jsToJSON = map;
  1044      }
  1045      return typ.jsToJSON;
  1046  }
  1047  
  1048  function transform(val: any, typ: any, getProps: any, key: any = '', parent: any = ''): any {
  1049      function transformPrimitive(typ: string, val: any): any {
  1050          if (typeof typ === typeof val) return val;
  1051          return invalidValue(typ, val, key, parent);
  1052      }
  1053  
  1054      function transformUnion(typs: any[], val: any): any {
  1055          // val must validate against one typ in typs
  1056          const l = typs.length;
  1057          for (let i = 0; i < l; i++) {
  1058              const typ = typs[i];
  1059              try {
  1060                  return transform(val, typ, getProps);
  1061              } catch (_) {}
  1062          }
  1063          return invalidValue(typs, val, key, parent);
  1064      }
  1065  
  1066      function transformEnum(cases: string[], val: any): any {
  1067          if (cases.indexOf(val) !== -1) return val;
  1068          return invalidValue(cases.map(a => { return l(a); }), val, key, parent);
  1069      }
  1070  
  1071      function transformArray(typ: any, val: any): any {
  1072          // val must be an array with no invalid elements
  1073          if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
  1074          return val.map(el => transform(el, typ, getProps));
  1075      }
  1076  
  1077      function transformDate(val: any): any {
  1078          if (val === null) {
  1079              return null;
  1080          }
  1081          const d = new Date(val);
  1082          if (isNaN(d.valueOf())) {
  1083              return invalidValue(l("Date"), val, key, parent);
  1084          }
  1085          return d;
  1086      }
  1087  
  1088      function transformObject(props: { [k: string]: any }, additional: any, val: any): any {
  1089          if (val === null || typeof val !== "object" || Array.isArray(val)) {
  1090              return invalidValue(l(ref || "object"), val, key, parent);
  1091          }
  1092          const result: any = {};
  1093          Object.getOwnPropertyNames(props).forEach(key => {
  1094              const prop = props[key];
  1095              const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
  1096              result[prop.key] = transform(v, prop.typ, getProps, key, ref);
  1097          });
  1098          Object.getOwnPropertyNames(val).forEach(key => {
  1099              if (!Object.prototype.hasOwnProperty.call(props, key)) {
  1100                  result[key] = transform(val[key], additional, getProps, key, ref);
  1101              }
  1102          });
  1103          return result;
  1104      }
  1105  
  1106      if (typ === "any") return val;
  1107      if (typ === null) {
  1108          if (val === null) return val;
  1109          return invalidValue(typ, val, key, parent);
  1110      }
  1111      if (typ === false) return invalidValue(typ, val, key, parent);
  1112      let ref: any = undefined;
  1113      while (typeof typ === "object" && typ.ref !== undefined) {
  1114          ref = typ.ref;
  1115          typ = typeMap[typ.ref];
  1116      }
  1117      if (Array.isArray(typ)) return transformEnum(typ, val);
  1118      if (typeof typ === "object") {
  1119          return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val)
  1120              : typ.hasOwnProperty("arrayItems")    ? transformArray(typ.arrayItems, val)
  1121              : typ.hasOwnProperty("props")         ? transformObject(getProps(typ), typ.additional, val)
  1122              : invalidValue(typ, val, key, parent);
  1123      }
  1124      // Numbers can be parsed by Date but shouldn't be.
  1125      if (typ === Date && typeof val !== "number") return transformDate(val);
  1126      return transformPrimitive(typ, val);
  1127  }
  1128  
  1129  function cast<T>(val: any, typ: any): T {
  1130      return transform(val, typ, jsonToJSProps);
  1131  }
  1132  
  1133  function uncast<T>(val: T, typ: any): any {
  1134      return transform(val, typ, jsToJSONProps);
  1135  }
  1136  
  1137  function l(typ: any) {
  1138      return { literal: typ };
  1139  }
  1140  
  1141  function a(typ: any) {
  1142      return { arrayItems: typ };
  1143  }
  1144  
  1145  function u(...typs: any[]) {
  1146      return { unionMembers: typs };
  1147  }
  1148  
  1149  function o(props: any[], additional: any) {
  1150      return { props, additional };
  1151  }
  1152  
  1153  function m(additional: any) {
  1154      return { props: [], additional };
  1155  }
  1156  
  1157  function r(name: string) {
  1158      return { ref: name };
  1159  }
  1160  
  1161  const typeMap: any = {
  1162      "JackalTypes": o([
  1163          { json: "DeployedPackage", js: "DeployedPackage", typ: r("DeployedPackage") },
  1164          { json: "JackalPackage", js: "JackalPackage", typ: r("JackalPackage") },
  1165          { json: "JackalState", js: "JackalState", typ: r("JackalState") },
  1166      ], false),
  1167      "DeployedPackage": o([
  1168          { json: "cliVersion", js: "cliVersion", typ: "" },
  1169          { json: "componentWebhooks", js: "componentWebhooks", typ: u(undefined, m(m(r("Webhook")))) },
  1170          { json: "connectStrings", js: "connectStrings", typ: u(undefined, m(r("ConnectString"))) },
  1171          { json: "data", js: "data", typ: r("JackalPackage") },
  1172          { json: "deployedComponents", js: "deployedComponents", typ: a(r("DeployedComponent")) },
  1173          { json: "generation", js: "generation", typ: 0 },
  1174          { json: "name", js: "name", typ: "" },
  1175      ], false),
  1176      "Webhook": o([
  1177          { json: "name", js: "name", typ: "" },
  1178          { json: "observedGeneration", js: "observedGeneration", typ: 0 },
  1179          { json: "status", js: "status", typ: "" },
  1180          { json: "waitDurationSeconds", js: "waitDurationSeconds", typ: u(undefined, 0) },
  1181      ], false),
  1182      "ConnectString": o([
  1183          { json: "description", js: "description", typ: "" },
  1184          { json: "url", js: "url", typ: "" },
  1185      ], false),
  1186      "JackalPackage": o([
  1187          { json: "build", js: "build", typ: u(undefined, r("JackalBuildData")) },
  1188          { json: "components", js: "components", typ: a(r("JackalComponent")) },
  1189          { json: "constants", js: "constants", typ: u(undefined, a(r("JackalPackageConstant"))) },
  1190          { json: "kind", js: "kind", typ: r("Kind") },
  1191          { json: "metadata", js: "metadata", typ: u(undefined, r("JackalMetadata")) },
  1192          { json: "variables", js: "variables", typ: u(undefined, a(r("JackalPackageVariable"))) },
  1193      ], false),
  1194      "JackalBuildData": o([
  1195          { json: "architecture", js: "architecture", typ: "" },
  1196          { json: "differential", js: "differential", typ: u(undefined, true) },
  1197          { json: "differentialMissing", js: "differentialMissing", typ: u(undefined, a("")) },
  1198          { json: "lastNonBreakingVersion", js: "lastNonBreakingVersion", typ: u(undefined, "") },
  1199          { json: "migrations", js: "migrations", typ: u(undefined, a("")) },
  1200          { json: "registryOverrides", js: "registryOverrides", typ: u(undefined, m("")) },
  1201          { json: "terminal", js: "terminal", typ: "" },
  1202          { json: "timestamp", js: "timestamp", typ: "" },
  1203          { json: "user", js: "user", typ: "" },
  1204          { json: "version", js: "version", typ: "" },
  1205      ], false),
  1206      "JackalComponent": o([
  1207          { json: "actions", js: "actions", typ: u(undefined, r("JackalComponentActions")) },
  1208          { json: "charts", js: "charts", typ: u(undefined, a(r("JackalChart"))) },
  1209          { json: "cosignKeyPath", js: "cosignKeyPath", typ: u(undefined, "") },
  1210          { json: "dataInjections", js: "dataInjections", typ: u(undefined, a(r("JackalDataInjection"))) },
  1211          { json: "default", js: "default", typ: u(undefined, true) },
  1212          { json: "description", js: "description", typ: u(undefined, "") },
  1213          { json: "extensions", js: "extensions", typ: u(undefined, r("JackalComponentExtensions")) },
  1214          { json: "files", js: "files", typ: u(undefined, a(r("JackalFile"))) },
  1215          { json: "group", js: "group", typ: u(undefined, "") },
  1216          { json: "images", js: "images", typ: u(undefined, a("")) },
  1217          { json: "import", js: "import", typ: u(undefined, r("JackalComponentImport")) },
  1218          { json: "manifests", js: "manifests", typ: u(undefined, a(r("JackalManifest"))) },
  1219          { json: "name", js: "name", typ: "" },
  1220          { json: "only", js: "only", typ: u(undefined, r("JackalComponentOnlyTarget")) },
  1221          { json: "repos", js: "repos", typ: u(undefined, a("")) },
  1222          { json: "required", js: "required", typ: u(undefined, true) },
  1223          { json: "scripts", js: "scripts", typ: u(undefined, r("DeprecatedJackalComponentScripts")) },
  1224      ], false),
  1225      "JackalComponentActions": o([
  1226          { json: "onCreate", js: "onCreate", typ: u(undefined, r("JackalComponentActionSet")) },
  1227          { json: "onDeploy", js: "onDeploy", typ: u(undefined, r("JackalComponentActionSet")) },
  1228          { json: "onRemove", js: "onRemove", typ: u(undefined, r("JackalComponentActionSet")) },
  1229      ], false),
  1230      "JackalComponentActionSet": o([
  1231          { json: "after", js: "after", typ: u(undefined, a(r("JackalComponentAction"))) },
  1232          { json: "before", js: "before", typ: u(undefined, a(r("JackalComponentAction"))) },
  1233          { json: "defaults", js: "defaults", typ: u(undefined, r("JackalComponentActionDefaults")) },
  1234          { json: "onFailure", js: "onFailure", typ: u(undefined, a(r("JackalComponentAction"))) },
  1235          { json: "onSuccess", js: "onSuccess", typ: u(undefined, a(r("JackalComponentAction"))) },
  1236      ], false),
  1237      "JackalComponentAction": o([
  1238          { json: "cmd", js: "cmd", typ: u(undefined, "") },
  1239          { json: "description", js: "description", typ: u(undefined, "") },
  1240          { json: "dir", js: "dir", typ: u(undefined, "") },
  1241          { json: "env", js: "env", typ: u(undefined, a("")) },
  1242          { json: "maxRetries", js: "maxRetries", typ: u(undefined, 0) },
  1243          { json: "maxTotalSeconds", js: "maxTotalSeconds", typ: u(undefined, 0) },
  1244          { json: "mute", js: "mute", typ: u(undefined, true) },
  1245          { json: "setVariable", js: "setVariable", typ: u(undefined, "") },
  1246          { json: "setVariables", js: "setVariables", typ: u(undefined, a(r("JackalComponentActionSetVariable"))) },
  1247          { json: "shell", js: "shell", typ: u(undefined, r("JackalComponentActionShell")) },
  1248          { json: "wait", js: "wait", typ: u(undefined, r("JackalComponentActionWait")) },
  1249      ], false),
  1250      "JackalComponentActionSetVariable": o([
  1251          { json: "autoIndent", js: "autoIndent", typ: u(undefined, true) },
  1252          { json: "name", js: "name", typ: "" },
  1253          { json: "pattern", js: "pattern", typ: u(undefined, "") },
  1254          { json: "sensitive", js: "sensitive", typ: u(undefined, true) },
  1255          { json: "type", js: "type", typ: u(undefined, r("Type")) },
  1256      ], false),
  1257      "JackalComponentActionShell": o([
  1258          { json: "darwin", js: "darwin", typ: u(undefined, "") },
  1259          { json: "linux", js: "linux", typ: u(undefined, "") },
  1260          { json: "windows", js: "windows", typ: u(undefined, "") },
  1261      ], false),
  1262      "JackalComponentActionWait": o([
  1263          { json: "cluster", js: "cluster", typ: u(undefined, r("JackalComponentActionWaitCluster")) },
  1264          { json: "network", js: "network", typ: u(undefined, r("JackalComponentActionWaitNetwork")) },
  1265      ], false),
  1266      "JackalComponentActionWaitCluster": o([
  1267          { json: "condition", js: "condition", typ: u(undefined, "") },
  1268          { json: "kind", js: "kind", typ: "" },
  1269          { json: "name", js: "name", typ: "" },
  1270          { json: "namespace", js: "namespace", typ: u(undefined, "") },
  1271      ], false),
  1272      "JackalComponentActionWaitNetwork": o([
  1273          { json: "address", js: "address", typ: "" },
  1274          { json: "code", js: "code", typ: u(undefined, 0) },
  1275          { json: "protocol", js: "protocol", typ: r("Protocol") },
  1276      ], false),
  1277      "JackalComponentActionDefaults": o([
  1278          { json: "dir", js: "dir", typ: u(undefined, "") },
  1279          { json: "env", js: "env", typ: u(undefined, a("")) },
  1280          { json: "maxRetries", js: "maxRetries", typ: u(undefined, 0) },
  1281          { json: "maxTotalSeconds", js: "maxTotalSeconds", typ: u(undefined, 0) },
  1282          { json: "mute", js: "mute", typ: u(undefined, true) },
  1283          { json: "shell", js: "shell", typ: u(undefined, r("JackalComponentActionShell")) },
  1284      ], false),
  1285      "JackalChart": o([
  1286          { json: "gitPath", js: "gitPath", typ: u(undefined, "") },
  1287          { json: "localPath", js: "localPath", typ: u(undefined, "") },
  1288          { json: "name", js: "name", typ: "" },
  1289          { json: "namespace", js: "namespace", typ: "" },
  1290          { json: "noWait", js: "noWait", typ: u(undefined, true) },
  1291          { json: "releaseName", js: "releaseName", typ: u(undefined, "") },
  1292          { json: "url", js: "url", typ: u(undefined, "") },
  1293          { json: "valuesFiles", js: "valuesFiles", typ: u(undefined, a("")) },
  1294          { json: "version", js: "version", typ: u(undefined, "") },
  1295      ], false),
  1296      "JackalDataInjection": o([
  1297          { json: "compress", js: "compress", typ: u(undefined, true) },
  1298          { json: "source", js: "source", typ: "" },
  1299          { json: "target", js: "target", typ: r("JackalContainerTarget") },
  1300      ], false),
  1301      "JackalContainerTarget": o([
  1302          { json: "container", js: "container", typ: "" },
  1303          { json: "namespace", js: "namespace", typ: "" },
  1304          { json: "path", js: "path", typ: "" },
  1305          { json: "selector", js: "selector", typ: "" },
  1306      ], false),
  1307      "JackalComponentExtensions": o([
  1308          { json: "bigbang", js: "bigbang", typ: u(undefined, r("BigBang")) },
  1309      ], false),
  1310      "BigBang": o([
  1311          { json: "fluxPatchFiles", js: "fluxPatchFiles", typ: u(undefined, a("")) },
  1312          { json: "repo", js: "repo", typ: u(undefined, "") },
  1313          { json: "skipFlux", js: "skipFlux", typ: u(undefined, true) },
  1314          { json: "valuesFiles", js: "valuesFiles", typ: u(undefined, a("")) },
  1315          { json: "version", js: "version", typ: "" },
  1316      ], false),
  1317      "JackalFile": o([
  1318          { json: "executable", js: "executable", typ: u(undefined, true) },
  1319          { json: "extractPath", js: "extractPath", typ: u(undefined, "") },
  1320          { json: "shasum", js: "shasum", typ: u(undefined, "") },
  1321          { json: "source", js: "source", typ: "" },
  1322          { json: "symlinks", js: "symlinks", typ: u(undefined, a("")) },
  1323          { json: "target", js: "target", typ: "" },
  1324      ], false),
  1325      "JackalComponentImport": o([
  1326          { json: "name", js: "name", typ: u(undefined, "") },
  1327          { json: "path", js: "path", typ: u(undefined, "") },
  1328          { json: "url", js: "url", typ: u(undefined, "") },
  1329      ], false),
  1330      "JackalManifest": o([
  1331          { json: "files", js: "files", typ: u(undefined, a("")) },
  1332          { json: "kustomizations", js: "kustomizations", typ: u(undefined, a("")) },
  1333          { json: "kustomizeAllowAnyDirectory", js: "kustomizeAllowAnyDirectory", typ: u(undefined, true) },
  1334          { json: "name", js: "name", typ: "" },
  1335          { json: "namespace", js: "namespace", typ: u(undefined, "") },
  1336          { json: "noWait", js: "noWait", typ: u(undefined, true) },
  1337      ], false),
  1338      "JackalComponentOnlyTarget": o([
  1339          { json: "cluster", js: "cluster", typ: u(undefined, r("JackalComponentOnlyCluster")) },
  1340          { json: "flavor", js: "flavor", typ: u(undefined, "") },
  1341          { json: "localOS", js: "localOS", typ: u(undefined, r("LocalOS")) },
  1342      ], false),
  1343      "JackalComponentOnlyCluster": o([
  1344          { json: "architecture", js: "architecture", typ: u(undefined, r("Architecture")) },
  1345          { json: "distros", js: "distros", typ: u(undefined, a("")) },
  1346      ], false),
  1347      "DeprecatedJackalComponentScripts": o([
  1348          { json: "after", js: "after", typ: u(undefined, a("")) },
  1349          { json: "before", js: "before", typ: u(undefined, a("")) },
  1350          { json: "prepare", js: "prepare", typ: u(undefined, a("")) },
  1351          { json: "retry", js: "retry", typ: u(undefined, true) },
  1352          { json: "showOutput", js: "showOutput", typ: u(undefined, true) },
  1353          { json: "timeoutSeconds", js: "timeoutSeconds", typ: u(undefined, 0) },
  1354      ], false),
  1355      "JackalPackageConstant": o([
  1356          { json: "autoIndent", js: "autoIndent", typ: u(undefined, true) },
  1357          { json: "description", js: "description", typ: u(undefined, "") },
  1358          { json: "name", js: "name", typ: "" },
  1359          { json: "pattern", js: "pattern", typ: u(undefined, "") },
  1360          { json: "value", js: "value", typ: "" },
  1361      ], false),
  1362      "JackalMetadata": o([
  1363          { json: "aggregateChecksum", js: "aggregateChecksum", typ: u(undefined, "") },
  1364          { json: "architecture", js: "architecture", typ: u(undefined, "") },
  1365          { json: "authors", js: "authors", typ: u(undefined, "") },
  1366          { json: "description", js: "description", typ: u(undefined, "") },
  1367          { json: "documentation", js: "documentation", typ: u(undefined, "") },
  1368          { json: "image", js: "image", typ: u(undefined, "") },
  1369          { json: "name", js: "name", typ: "" },
  1370          { json: "source", js: "source", typ: u(undefined, "") },
  1371          { json: "uncompressed", js: "uncompressed", typ: u(undefined, true) },
  1372          { json: "url", js: "url", typ: u(undefined, "") },
  1373          { json: "vendor", js: "vendor", typ: u(undefined, "") },
  1374          { json: "version", js: "version", typ: u(undefined, "") },
  1375          { json: "yolo", js: "yolo", typ: u(undefined, true) },
  1376      ], false),
  1377      "JackalPackageVariable": o([
  1378          { json: "autoIndent", js: "autoIndent", typ: u(undefined, true) },
  1379          { json: "default", js: "default", typ: u(undefined, "") },
  1380          { json: "description", js: "description", typ: u(undefined, "") },
  1381          { json: "name", js: "name", typ: "" },
  1382          { json: "pattern", js: "pattern", typ: u(undefined, "") },
  1383          { json: "prompt", js: "prompt", typ: u(undefined, true) },
  1384          { json: "sensitive", js: "sensitive", typ: u(undefined, true) },
  1385          { json: "type", js: "type", typ: u(undefined, r("Type")) },
  1386      ], false),
  1387      "DeployedComponent": o([
  1388          { json: "installedCharts", js: "installedCharts", typ: a(r("InstalledChart")) },
  1389          { json: "name", js: "name", typ: "" },
  1390          { json: "observedGeneration", js: "observedGeneration", typ: 0 },
  1391          { json: "status", js: "status", typ: "" },
  1392      ], false),
  1393      "InstalledChart": o([
  1394          { json: "chartName", js: "chartName", typ: "" },
  1395          { json: "namespace", js: "namespace", typ: "" },
  1396      ], false),
  1397      "JackalState": o([
  1398          { json: "agentTLS", js: "agentTLS", typ: r("GeneratedPKI") },
  1399          { json: "architecture", js: "architecture", typ: "" },
  1400          { json: "artifactServer", js: "artifactServer", typ: r("ArtifactServerInfo") },
  1401          { json: "distro", js: "distro", typ: "" },
  1402          { json: "gitServer", js: "gitServer", typ: r("GitServerInfo") },
  1403          { json: "loggingSecret", js: "loggingSecret", typ: "" },
  1404          { json: "registryInfo", js: "registryInfo", typ: r("RegistryInfo") },
  1405          { json: "storageClass", js: "storageClass", typ: "" },
  1406          { json: "jackalAppliance", js: "jackalAppliance", typ: true },
  1407      ], false),
  1408      "GeneratedPKI": o([
  1409          { json: "ca", js: "ca", typ: "" },
  1410          { json: "cert", js: "cert", typ: "" },
  1411          { json: "key", js: "key", typ: "" },
  1412      ], false),
  1413      "ArtifactServerInfo": o([
  1414          { json: "address", js: "address", typ: "" },
  1415          { json: "internalServer", js: "internalServer", typ: true },
  1416          { json: "pushPassword", js: "pushPassword", typ: "" },
  1417          { json: "pushUsername", js: "pushUsername", typ: "" },
  1418      ], false),
  1419      "GitServerInfo": o([
  1420          { json: "address", js: "address", typ: "" },
  1421          { json: "internalServer", js: "internalServer", typ: true },
  1422          { json: "pullPassword", js: "pullPassword", typ: "" },
  1423          { json: "pullUsername", js: "pullUsername", typ: "" },
  1424          { json: "pushPassword", js: "pushPassword", typ: "" },
  1425          { json: "pushUsername", js: "pushUsername", typ: "" },
  1426      ], false),
  1427      "RegistryInfo": o([
  1428          { json: "address", js: "address", typ: "" },
  1429          { json: "internalRegistry", js: "internalRegistry", typ: true },
  1430          { json: "nodePort", js: "nodePort", typ: 0 },
  1431          { json: "pullPassword", js: "pullPassword", typ: "" },
  1432          { json: "pullUsername", js: "pullUsername", typ: "" },
  1433          { json: "pushPassword", js: "pushPassword", typ: "" },
  1434          { json: "pushUsername", js: "pushUsername", typ: "" },
  1435          { json: "secret", js: "secret", typ: "" },
  1436      ], false),
  1437      "Type": [
  1438          "file",
  1439          "raw",
  1440      ],
  1441      "Protocol": [
  1442          "http",
  1443          "https",
  1444          "tcp",
  1445      ],
  1446      "Architecture": [
  1447          "amd64",
  1448          "arm64",
  1449      ],
  1450      "LocalOS": [
  1451          "darwin",
  1452          "linux",
  1453          "windows",
  1454      ],
  1455      "Kind": [
  1456          "JackalInitConfig",
  1457          "JackalPackageConfig",
  1458      ],
  1459  };