Skip to content

Variable: AppInstallSaveResult ​

ts
const AppInstallSaveResult: ZodUnion<readonly [ZodObject<{
  change: ZodObject<{
     approvalSettings: ZodObject<{
        fourEyes: ZodBoolean;
        required: ZodBoolean;
     }, $strip>;
     comment: ZodNullable<ZodString>;
     config: ZodRecord<ZodString, ZodUnknown>;
     decidedAt: ZodNullable<ZodCoercedDate<unknown>>;
     decidedBy: ZodNullable<ZodString>;
     decision: ZodNullable<ZodEnum<{
        approved: "approved";
        rejected: "rejected";
        withdrawn: "withdrawn";
     }>>;
     decisionComment: ZodNullable<ZodString>;
     enabled: ZodBoolean;
     handlesAdded: ZodArray<ZodEnum<{
        handoff: "handoff";
        webhook: "webhook";
     }>>;
     hosts: ZodArray<ZodString>;
     hostsAdded: ZodArray<ZodString>;
     id: ZodGUID;
     installId: ZodGUID;
     installName: ZodString;
     installUpdatedAt: ZodCoercedDate<unknown>;
     needsAdded: ZodArray<ZodEnum<{
        documents: "documents";
     }>>;
     newInstall: ZodBoolean;
     origin: ZodEnum<{
        auto_upgrade: "auto_upgrade";
        save: "save";
     }>;
     requestedAt: ZodCoercedDate<unknown>;
     requestedBy: ZodString;
     tenantId: ZodGUID;
     versionId: ZodGUID;
  }, $strip>;
  install: ZodObject<{
     aliases: ZodArray<ZodString>;
     appName: ZodString;
     autoUpgrade: ZodEnum<{
        compatible: "compatible";
        off: "off";
     }>;
     circuit: ZodObject<{
        defaults: ZodObject<{
           failureThreshold: ZodNumber;
           openSeconds: ZodNumber;
        }, $strip>;
        failures: ZodNumber;
        settings: ZodObject<{
           failureThreshold: ZodNullable<...>;
           openSeconds: ZodNullable<...>;
        }, $strip>;
        since: ZodNullable<ZodCoercedDate<unknown>>;
        state: ZodEnum<{
           closed: "closed";
           half_open: "half_open";
           open: "open";
        }>;
     }, $strip>;
     config: ZodRecord<ZodString, ZodUnknown>;
     createdAt: ZodCoercedDate<unknown>;
     enabled: ZodBoolean;
     hosts: ZodArray<ZodString>;
     id: ZodGUID;
     missingSecrets: ZodArray<ZodString>;
     name: ZodString;
     pendingChange: ZodNullable<ZodObject<{
        approvalSettings: ZodObject<{
           fourEyes: ...;
           required: ...;
        }, $strip>;
        comment: ZodNullable<ZodString>;
        config: ZodRecord<ZodString, ZodUnknown>;
        decidedAt: ZodNullable<ZodCoercedDate<...>>;
        decidedBy: ZodNullable<ZodString>;
        decision: ZodNullable<ZodEnum<...>>;
        decisionComment: ZodNullable<ZodString>;
        enabled: ZodBoolean;
        handlesAdded: ZodArray<ZodEnum<...>>;
        hosts: ZodArray<ZodString>;
        hostsAdded: ZodArray<ZodString>;
        id: ZodGUID;
        installId: ZodGUID;
        installName: ZodString;
        installUpdatedAt: ZodCoercedDate<unknown>;
        needsAdded: ZodArray<ZodEnum<...>>;
        newInstall: ZodBoolean;
        origin: ZodEnum<{
           auto_upgrade: ...;
           save: ...;
        }>;
        requestedAt: ZodCoercedDate<unknown>;
        requestedBy: ZodString;
        tenantId: ZodGUID;
        versionId: ZodGUID;
     }, $strip>>;
     requiredSecrets: ZodArray<ZodString>;
     storedSecrets: ZodArray<ZodString>;
     tenantId: ZodGUID;
     updateAvailable: ZodBoolean;
     updatedAt: ZodCoercedDate<unknown>;
     upgrade: ZodNullable<ZodObject<{
        actions: ZodArray<ZodObject<..., ...>>;
        changeId: ZodNullable<ZodGUID>;
        handlesAdded: ZodArray<ZodEnum<...>>;
        hostsAdded: ZodArray<ZodString>;
        issues: ZodArray<ZodObject<..., ...>>;
        missingSecrets: ZodArray<ZodString>;
        needsAdded: ZodArray<ZodEnum<...>>;
        rollback: ZodBoolean;
        target: ZodObject<{
           id: ...;
           version: ...;
        }, $strip>;
        waitingFor: ZodNullable<ZodEnum<...>>;
     }, $strip>>;
     upgradedFromVersionId: ZodNullable<ZodGUID>;
     version: ZodObject<{
        actions: ZodArray<ZodObject<{
           callbackTimeoutSeconds: ...;
           description: ...;
           idempotent: ...;
           inputSchema: ...;
           mappable: ...;
           name: ...;
           outputFromInput: ...;
           outputSchema: ...;
           retry: ...;
           timeoutMs: ...;
        }, $strip>>;
        capabilities: ZodArray<ZodString>;
        category: ZodOptional<ZodString>;
        configSchema: ZodRecord<ZodString, ZodUnknown>;
        createdAt: ZodCoercedDate<unknown>;
        description: ZodOptional<ZodString>;
        docsUrl: ZodOptional<ZodString>;
        documentsFromConfig: ZodOptional<ZodString>;
        handles: ZodObject<{
           handoff: ZodOptional<...>;
           webhook: ZodDefault<...>;
           webhookExternalId: ZodOptional<...>;
           webhookExternalIdFromConfig: ZodOptional<...>;
        }, $strip>;
        hosts: ZodArray<ZodString>;
        hostsFromConfig: ZodArray<ZodString>;
        id: ZodGUID;
        memoryMiB: ZodNumber;
        name: ZodString;
        needs: ZodArray<ZodEnum<{
           documents: ...;
        }>>;
        platformSource: ZodNullable<ZodEnum<{
           operator: ...;
           release: ...;
        }>>;
        pricingNote: ZodOptional<ZodString>;
        provenance: ZodNullable<ZodObject<{
           kind: ...;
           recordedBy: ...;
           signedAt: ...;
           signer: ...;
           source: ...;
           transparencyLogIndex: ...;
           trusted: ...;
           trustedSigner: ...;
           verifiedAt: ...;
        }, $strip>>;
        publishedAt: ZodNullable<ZodCoercedDate<unknown>>;
        publisher: ZodEnum<{
           platform: "platform";
           tenant: "tenant";
        }>;
        review: ZodNullable<ZodObject<{
           comment: ...;
           decidedAt: ...;
           decidedBy: ...;
           id: ...;
           requestedAt: ...;
           requestedBy: ...;
           status: ...;
           tenantId: ...;
           versionId: ...;
        }, $strip>>;
        secrets: ZodArray<ZodObject<{
           description: ...;
           name: ...;
           requiredWhen: ...;
        }, $strip>>;
        secretsFromConfig: ZodOptional<ZodString>;
        sha256: ZodString;
        sizeBytes: ZodNumber;
        status: ZodEnum<{
           published: "published";
           uploaded: "uploaded";
           withdrawn: "withdrawn";
        }>;
        title: ZodOptional<ZodString>;
        vendor: ZodOptional<ZodString>;
        version: ZodString;
     }, $strip>;
     versionId: ZodGUID;
     webhookUrl: ZodNullable<ZodURL>;
  }, $strip>;
}, $strip>, ZodPipe<ZodObject<{
  aliases: ZodArray<ZodString>;
  appName: ZodString;
  autoUpgrade: ZodEnum<{
     compatible: "compatible";
     off: "off";
  }>;
  circuit: ZodObject<{
     defaults: ZodObject<{
        failureThreshold: ZodNumber;
        openSeconds: ZodNumber;
     }, $strip>;
     failures: ZodNumber;
     settings: ZodObject<{
        failureThreshold: ZodNullable<ZodNumber>;
        openSeconds: ZodNullable<ZodNumber>;
     }, $strip>;
     since: ZodNullable<ZodCoercedDate<unknown>>;
     state: ZodEnum<{
        closed: "closed";
        half_open: "half_open";
        open: "open";
     }>;
  }, $strip>;
  config: ZodRecord<ZodString, ZodUnknown>;
  createdAt: ZodCoercedDate<unknown>;
  enabled: ZodBoolean;
  hosts: ZodArray<ZodString>;
  id: ZodGUID;
  missingSecrets: ZodArray<ZodString>;
  name: ZodString;
  pendingChange: ZodNullable<ZodObject<{
     approvalSettings: ZodObject<{
        fourEyes: ZodBoolean;
        required: ZodBoolean;
     }, $strip>;
     comment: ZodNullable<ZodString>;
     config: ZodRecord<ZodString, ZodUnknown>;
     decidedAt: ZodNullable<ZodCoercedDate<unknown>>;
     decidedBy: ZodNullable<ZodString>;
     decision: ZodNullable<ZodEnum<{
        approved: ...;
        rejected: ...;
        withdrawn: ...;
     }>>;
     decisionComment: ZodNullable<ZodString>;
     enabled: ZodBoolean;
     handlesAdded: ZodArray<ZodEnum<{
        handoff: ...;
        webhook: ...;
     }>>;
     hosts: ZodArray<ZodString>;
     hostsAdded: ZodArray<ZodString>;
     id: ZodGUID;
     installId: ZodGUID;
     installName: ZodString;
     installUpdatedAt: ZodCoercedDate<unknown>;
     needsAdded: ZodArray<ZodEnum<{
        documents: ...;
     }>>;
     newInstall: ZodBoolean;
     origin: ZodEnum<{
        auto_upgrade: "auto_upgrade";
        save: "save";
     }>;
     requestedAt: ZodCoercedDate<unknown>;
     requestedBy: ZodString;
     tenantId: ZodGUID;
     versionId: ZodGUID;
  }, $strip>>;
  requiredSecrets: ZodArray<ZodString>;
  storedSecrets: ZodArray<ZodString>;
  tenantId: ZodGUID;
  updateAvailable: ZodBoolean;
  updatedAt: ZodCoercedDate<unknown>;
  upgrade: ZodNullable<ZodObject<{
     actions: ZodArray<ZodObject<{
        action: ...;
        problem: ...;
        usedBy: ...;
     }, $strip>>;
     changeId: ZodNullable<ZodGUID>;
     handlesAdded: ZodArray<ZodEnum<{
        handoff: ...;
        webhook: ...;
     }>>;
     hostsAdded: ZodArray<ZodString>;
     issues: ZodArray<ZodObject<{
        message: ...;
        path: ...;
     }, $strip>>;
     missingSecrets: ZodArray<ZodString>;
     needsAdded: ZodArray<ZodEnum<{
        documents: ...;
     }>>;
     rollback: ZodBoolean;
     target: ZodObject<{
        id: ZodGUID;
        version: ZodString;
     }, $strip>;
     waitingFor: ZodNullable<ZodEnum<{
        actions: ...;
        approval: ...;
        config: ...;
        declined: ...;
        secrets: ...;
     }>>;
  }, $strip>>;
  upgradedFromVersionId: ZodNullable<ZodGUID>;
  version: ZodObject<{
     actions: ZodArray<ZodObject<{
        callbackTimeoutSeconds: ZodOptional<...>;
        description: ZodOptional<...>;
        idempotent: ZodBoolean;
        inputSchema: ZodRecord<..., ...>;
        mappable: ZodOptional<...>;
        name: ZodString;
        outputFromInput: ZodOptional<...>;
        outputSchema: ZodRecord<..., ...>;
        retry: ZodOptional<...>;
        timeoutMs: ZodNumber;
     }, $strip>>;
     capabilities: ZodArray<ZodString>;
     category: ZodOptional<ZodString>;
     configSchema: ZodRecord<ZodString, ZodUnknown>;
     createdAt: ZodCoercedDate<unknown>;
     description: ZodOptional<ZodString>;
     docsUrl: ZodOptional<ZodString>;
     documentsFromConfig: ZodOptional<ZodString>;
     handles: ZodObject<{
        handoff: ZodOptional<ZodBoolean>;
        webhook: ZodDefault<ZodBoolean>;
        webhookExternalId: ZodOptional<ZodUnion<...>>;
        webhookExternalIdFromConfig: ZodOptional<ZodString>;
     }, $strip>;
     hosts: ZodArray<ZodString>;
     hostsFromConfig: ZodArray<ZodString>;
     id: ZodGUID;
     memoryMiB: ZodNumber;
     name: ZodString;
     needs: ZodArray<ZodEnum<{
        documents: "documents";
     }>>;
     platformSource: ZodNullable<ZodEnum<{
        operator: "operator";
        release: "release";
     }>>;
     pricingNote: ZodOptional<ZodString>;
     provenance: ZodNullable<ZodObject<{
        kind: ZodEnum<...>;
        recordedBy: ZodString;
        signedAt: ZodNullable<...>;
        signer: ZodNullable<...>;
        source: ZodObject<..., ...>;
        transparencyLogIndex: ZodNullable<...>;
        trusted: ZodBoolean;
        trustedSigner: ZodNullable<...>;
        verifiedAt: ZodCoercedDate<...>;
     }, $strip>>;
     publishedAt: ZodNullable<ZodCoercedDate<unknown>>;
     publisher: ZodEnum<{
        platform: "platform";
        tenant: "tenant";
     }>;
     review: ZodNullable<ZodObject<{
        comment: ZodNullable<...>;
        decidedAt: ZodNullable<...>;
        decidedBy: ZodNullable<...>;
        id: ZodGUID;
        requestedAt: ZodCoercedDate<...>;
        requestedBy: ZodString;
        status: ZodEnum<...>;
        tenantId: ZodGUID;
        versionId: ZodGUID;
     }, $strip>>;
     secrets: ZodArray<ZodObject<{
        description: ZodOptional<...>;
        name: ZodString;
        requiredWhen: ZodOptional<...>;
     }, $strip>>;
     secretsFromConfig: ZodOptional<ZodString>;
     sha256: ZodString;
     sizeBytes: ZodNumber;
     status: ZodEnum<{
        published: "published";
        uploaded: "uploaded";
        withdrawn: "withdrawn";
     }>;
     title: ZodOptional<ZodString>;
     vendor: ZodOptional<ZodString>;
     version: ZodString;
  }, $strip>;
  versionId: ZodGUID;
  webhookUrl: ZodNullable<ZodURL>;
}, $strip>, ZodTransform<{
  change: null;
  install: {
     aliases: string[];
     appName: string;
     autoUpgrade: "off" | "compatible";
     circuit: {
        defaults: {
           failureThreshold: number;
           openSeconds: number;
        };
        failures: number;
        settings: {
           failureThreshold: number | null;
           openSeconds: number | null;
        };
        since: Date | null;
        state: "closed" | "open" | "half_open";
     };
     config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
     createdAt: Date;
     enabled: boolean;
     hosts: string[];
     id: string;
     missingSecrets: string[];
     name: string;
     pendingChange:   | {
        approvalSettings: {
           fourEyes: boolean;
           required: boolean;
        };
        comment: string | null;
        config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        decidedAt: Date | null;
        decidedBy: string | null;
        decision: "withdrawn" | "approved" | "rejected" | null;
        decisionComment: string | null;
        enabled: boolean;
        handlesAdded: ("webhook" | "handoff")[];
        hosts: string[];
        hostsAdded: string[];
        id: string;
        installId: string;
        installName: string;
        installUpdatedAt: Date;
        needsAdded: "documents"[];
        newInstall: boolean;
        origin: "save" | "auto_upgrade";
        requestedAt: Date;
        requestedBy: string;
        tenantId: string;
        versionId: string;
      }
        | null;
     requiredSecrets: string[];
     storedSecrets: string[];
     tenantId: string;
     updateAvailable: boolean;
     updatedAt: Date;
     upgrade:   | {
        actions: object[];
        changeId: string | null;
        handlesAdded: ("webhook" | "handoff")[];
        hostsAdded: string[];
        issues: object[];
        missingSecrets: string[];
        needsAdded: "documents"[];
        rollback: boolean;
        target: {
           id: string;
           version: string;
        };
        waitingFor: "config" | "approval" | "secrets" | "actions" | "declined" | null;
      }
        | null;
     upgradedFromVersionId: string | null;
     version: {
        actions: object[];
        capabilities: string[];
        category?: string;
        configSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        createdAt: Date;
        description?: string;
        docsUrl?: string;
        documentsFromConfig?: string;
        handles: {
           handoff?: boolean;
           webhook: boolean;
           webhookExternalId?:   | {
              json: string;
            }
              | {
              header: string;
            }
              | {
              query: string;
            };
           webhookExternalIdFromConfig?: string;
        };
        hosts: string[];
        hostsFromConfig: string[];
        id: string;
        memoryMiB: number;
        name: string;
        needs: "documents"[];
        platformSource: "operator" | "release" | null;
        pricingNote?: string;
        provenance:   | {
           kind: "release" | "signature" | "attestation";
           recordedBy: string;
           signedAt: Date | null;
           signer:   | {
              identity: ...;
              issuer: ...;
              type: ...;
            }
              | {
              fingerprint: ...;
              hint: ...;
              type: ...;
            }
              | null;
           source: {
              commit: ... | ...;
              ref: ... | ...;
              repository: ... | ...;
           };
           transparencyLogIndex: number | null;
           trusted: boolean;
           trustedSigner: string | null;
           verifiedAt: Date;
         }
           | null;
        publishedAt: Date | null;
        publisher: "tenant" | "platform";
        review:   | {
           comment: string | null;
           decidedAt: Date | null;
           decidedBy: string | null;
           id: string;
           requestedAt: Date;
           requestedBy: string;
           status: "pending" | "withdrawn" | "approved" | "rejected";
           tenantId: string;
           versionId: string;
         }
           | null;
        secrets: object[];
        secretsFromConfig?: string;
        sha256: string;
        sizeBytes: number;
        status: "published" | "withdrawn" | "uploaded";
        title?: string;
        vendor?: string;
        version: string;
     };
     versionId: string;
     webhookUrl: string | null;
  };
}, {
  aliases: string[];
  appName: string;
  autoUpgrade: "off" | "compatible";
  circuit: {
     defaults: {
        failureThreshold: number;
        openSeconds: number;
     };
     failures: number;
     settings: {
        failureThreshold: number | null;
        openSeconds: number | null;
     };
     since: Date | null;
     state: "closed" | "open" | "half_open";
  };
  config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
  createdAt: Date;
  enabled: boolean;
  hosts: string[];
  id: string;
  missingSecrets: string[];
  name: string;
  pendingChange:   | {
     approvalSettings: {
        fourEyes: boolean;
        required: boolean;
     };
     comment: string | null;
     config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
     decidedAt: Date | null;
     decidedBy: string | null;
     decision: "withdrawn" | "approved" | "rejected" | null;
     decisionComment: string | null;
     enabled: boolean;
     handlesAdded: ("webhook" | "handoff")[];
     hosts: string[];
     hostsAdded: string[];
     id: string;
     installId: string;
     installName: string;
     installUpdatedAt: Date;
     needsAdded: "documents"[];
     newInstall: boolean;
     origin: "save" | "auto_upgrade";
     requestedAt: Date;
     requestedBy: string;
     tenantId: string;
     versionId: string;
   }
     | null;
  requiredSecrets: string[];
  storedSecrets: string[];
  tenantId: string;
  updateAvailable: boolean;
  updatedAt: Date;
  upgrade:   | {
     actions: object[];
     changeId: string | null;
     handlesAdded: ("webhook" | "handoff")[];
     hostsAdded: string[];
     issues: object[];
     missingSecrets: string[];
     needsAdded: "documents"[];
     rollback: boolean;
     target: {
        id: string;
        version: string;
     };
     waitingFor: "config" | "approval" | "secrets" | "actions" | "declined" | null;
   }
     | null;
  upgradedFromVersionId: string | null;
  version: {
     actions: object[];
     capabilities: string[];
     category?: string;
     configSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
     createdAt: Date;
     description?: string;
     docsUrl?: string;
     documentsFromConfig?: string;
     handles: {
        handoff?: boolean;
        webhook: boolean;
        webhookExternalId?:   | {
           json: string;
         }
           | {
           header: string;
         }
           | {
           query: string;
         };
        webhookExternalIdFromConfig?: string;
     };
     hosts: string[];
     hostsFromConfig: string[];
     id: string;
     memoryMiB: number;
     name: string;
     needs: "documents"[];
     platformSource: "operator" | "release" | null;
     pricingNote?: string;
     provenance:   | {
        kind: "release" | "signature" | "attestation";
        recordedBy: string;
        signedAt: Date | null;
        signer:   | {
           identity: string;
           issuer: string;
           type: "keyless";
         }
           | {
           fingerprint: string;
           hint: ... | ...;
           type: "key";
         }
           | null;
        source: {
           commit: string | null;
           ref: string | null;
           repository: string | null;
        };
        transparencyLogIndex: number | null;
        trusted: boolean;
        trustedSigner: string | null;
        verifiedAt: Date;
      }
        | null;
     publishedAt: Date | null;
     publisher: "tenant" | "platform";
     review:   | {
        comment: string | null;
        decidedAt: Date | null;
        decidedBy: string | null;
        id: string;
        requestedAt: Date;
        requestedBy: string;
        status: "pending" | "withdrawn" | "approved" | "rejected";
        tenantId: string;
        versionId: string;
      }
        | null;
     secrets: object[];
     secretsFromConfig?: string;
     sha256: string;
     sizeBytes: number;
     status: "published" | "withdrawn" | "uploaded";
     title?: string;
     vendor?: string;
     version: string;
  };
  versionId: string;
  webhookUrl: string | null;
}>>]>;

A saved install: applied at once, with change null; or, when the save adds hosts and the tenant requires approvals for apps (answered 202), the install as it keeps serving meanwhile (a new one waits disabled and without hosts) and the change that waits for another administrator.

Released under the Apache-2.0 License.