001/*- 002 * #%L 003 * Smile CDR - CDR 004 * %% 005 * Copyright (C) 2016 - 2026 Smile CDR, Inc. 006 * %% 007 * All rights reserved. 008 * #L% 009 */ 010package ca.cdr.api.model.json.portal; 011 012import ca.cdr.api.model.json.AbstractModelJson; 013import com.fasterxml.jackson.annotation.JsonCreator; 014import com.fasterxml.jackson.annotation.JsonProperty; 015import io.swagger.v3.oas.annotations.media.Schema; 016import jakarta.annotation.Nonnull; 017 018import java.util.List; 019import java.util.Objects; 020 021public class PortalAppsJson extends AbstractModelJson { 022 @Schema(description = "configuration for custom external applications accessible in Smile portal") 023 public final List<ExternalAppJson> externalApps; 024 025 @Schema(description = "configuration for customer-supplied web-jar applications hosted in Smile portal") 026 public final List<InternalAppJson> internalApps; 027 028 @Schema(description = "configuration for bundled applications accessible in Smile portal") 029 public final List<BundledAppJson> bundledApps; 030 031 @Schema(description = "configuration for Smile module endpoints that will be accessible in Smile portal") 032 public final List<CdrModuleAppJson> cdrModuleApps; 033 034 @JsonCreator 035 public PortalAppsJson( 036 @Nonnull @JsonProperty(value = "externalApps", required = true) List<ExternalAppJson> theExternalApps, 037 @Nonnull @JsonProperty(value = "internalApps", required = true) List<InternalAppJson> theInternalApps, 038 @Nonnull @JsonProperty(value = "bundledApps", required = true) List<BundledAppJson> theBundledApps, 039 @Nonnull @JsonProperty(value = "cdrModuleApps", required = true) List<CdrModuleAppJson> theCdrModuleApps) { 040 Objects.requireNonNull(theExternalApps); 041 Objects.requireNonNull(theBundledApps); 042 Objects.requireNonNull(theCdrModuleApps); 043 Objects.requireNonNull(theInternalApps); 044 externalApps = theExternalApps; 045 bundledApps = theBundledApps; 046 cdrModuleApps = theCdrModuleApps; 047 internalApps = theInternalApps; 048 } 049}