001package ca.cdr.api.model.json.appgallery.portal;
002
003/*
004 * #%L
005 * Smile CDR - CDR
006 * %%
007 * Copyright (C) 2016 - 2026 Smile CDR, Inc.
008 * %%
009 * All rights reserved.
010 * #L%
011 */
012
013import ca.cdr.api.model.json.AbstractModelJson;
014import ca.cdr.api.model.json.JsonDateDeserializer;
015import ca.cdr.api.model.json.JsonDateSerializer;
016import ca.cdr.api.model.json.appgallery.common.AGApplicationJson;
017import ca.cdr.api.model.json.appgallery.common.AGIdentifierJson;
018import ca.cdr.api.model.json.appgallery.common.AGMetaDataJson;
019import ca.cdr.api.model.json.appgallery.common.AGOauthJson;
020import ca.cdr.api.model.json.appgallery.common.AGProfileJson;
021import ca.cdr.api.model.json.appgallery.common.AGScopeJson;
022import ca.cdr.api.model.json.jackson2deprecated.JsonDateDeserializerJacksonV2Deprecated;
023import ca.cdr.api.model.json.jackson2deprecated.JsonDateSerializerJacksonV2Deprecated;
024import io.swagger.v3.oas.annotations.media.Schema;
025import tools.jackson.databind.annotation.JsonDeserialize;
026import tools.jackson.databind.annotation.JsonSerialize;
027
028import java.util.Date;
029import java.util.List;
030
031/**
032 * The developer portal's view of one appSphere application: the response body of the Developer Portal's
033 * get-application endpoint, and a hook parameter of
034 * {@link ca.cdr.api.fhir.interceptor.CdrPointcut#AG_OAUTH2_CLIENT_SECRET_REGENERATED}.
035 */
036public class AGPortalJson extends AbstractModelJson {
037        public AGIdentifierJson identifier;
038
039        @Schema(description = "Application being registered")
040        public AGApplicationJson application;
041
042        @Schema(description = "Developer profile at the time of registration")
043        public AGProfileJson profile;
044
045        @Schema(description = "Information to help users search for and find the application.")
046        public List<String> classification;
047
048        public List<String> prerequisites;
049
050        @Schema(description = "SMART scopes required for the application.")
051        public List<AGScopeJson> scopes;
052
053        @Schema(description = "OIDC details")
054        public AGOauthJson oauth;
055
056        @com.fasterxml.jackson.databind.annotation.JsonSerialize(using = JsonDateSerializerJacksonV2Deprecated.class)
057        @JsonSerialize(using = JsonDateSerializer.class)
058        @com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = JsonDateDeserializerJacksonV2Deprecated.class)
059        @JsonDeserialize(using = JsonDateDeserializer.class)
060        public Date createdDate;
061
062        @Schema(description = "Application icon (base64 encoded)")
063        public String icon;
064
065        public AGIdentifierJson attestationIdentifier;
066
067        @Schema(description = "Notes for the reviewer to help them evaluate submissions")
068        public String registrationNote;
069
070        @Schema(description = "Metadata associated with registration")
071        public List<AGMetaDataJson> metaDataValues;
072
073        public List<String> countryIsoCodeAlpha2;
074
075        @Schema(description = "Current Developer profile associated with registration")
076        public AGProfileJson currentProfile;
077}