Allow POST dr_sub using FeedName
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / model / Topic.java
index c2f278d..cffe448 100644 (file)
@@ -30,6 +30,8 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.onap.dmaap.dbcapi.util.DmaapConfig;
 
+import io.swagger.annotations.ApiModelProperty;
+
 import org.onap.dmaap.dbcapi.service.DmaapService;
 import org.onap.dmaap.dbcapi.service.TopicService;
 
@@ -37,20 +39,36 @@ import org.onap.dmaap.dbcapi.service.TopicService;
 @XmlRootElement
 public class Topic extends DmaapObject  {
 
+       @ApiModelProperty( value="Fully Qualified Topic Name constructed by dbcapi, following the rules for `fqtnStyle`")
        private String fqtn;
+       @ApiModelProperty( value="the short name used by humans, and utilized to construct the `FQTN`")
        private String topicName;
+       @ApiModelProperty( value="a description of what this Topic is used for")
        private String  topicDescription;
        private String  tnxEnabled;
+       @ApiModelProperty( value="a label used to identify who requested this `Topic` to be provisioned.  In the future this "
+                       + "may be an AAF Identity.")
        private String  owner;
+       @ApiModelProperty( value="a reference to an identifier that describes a data format used for this `Topic`")
        private String  formatUuid;
+       @ApiModelProperty( value="An indicator for how this `Topic` should be replicated when there are more than one `MR_Cluster` instances")
        private ReplicationType replicationCase;  
+       @ApiModelProperty( value="the URL of an outside MR instance")
        private String  globalMrURL;            // optional: URL of global MR to replicate to/from
+       @ApiModelProperty( value="the construction rule for the `fqtn` field")
        private FqtnType  fqtnStyle;
-       private String  version;        
+       @ApiModelProperty( value="a hook for any versioning needed for managing a `Topic` over time")
+       private String  version;
+       @ApiModelProperty( value="the kafka attribute for specifying the number of partitions")
        private String  partitionCount;
+       @ApiModelProperty( value="the kafka attribute for specifying replication within an `MR_Cluster` instance")
        private String  replicationCount;
+       @ApiModelProperty( value="a value generated by dbcapi, this AAF Role has permission to publish to this `Topic`")
+       private String  publisherRole;
+       @ApiModelProperty( value="a value generated by dbcapi, this AAF Role has permission to subscribe to this `Topic`")
+       private String  subscriberRole;
 
-
+       @ApiModelProperty( value="an array of `MR_Client` objects associated to this `Topic`")
        private ArrayList<MR_Client> clients;
 
 
@@ -110,7 +128,7 @@ public class Topic extends DmaapObject  {
 
        public Topic() {
                super();
-               this.clients = new ArrayList<MR_Client>();
+               this.clients = new ArrayList<>();
                this.lastMod = new Date();
                this.replicationCase = ReplicationType.Validator("none");
                this.setLastMod();
@@ -122,7 +140,6 @@ public class Topic extends DmaapObject  {
                this.fqtn = fqtn;
                this.topicName = topicName;
                this.topicDescription = topicDescription;
-               //this.dcaeLocationName = dcaeLocationName;
                this.tnxEnabled = tnxEnabled;
                this.owner = owner;
                this.init();
@@ -160,7 +177,6 @@ public class Topic extends DmaapObject  {
                this.setTopicName( (String) jsonObj.get( "topicName" ) );
                this.setTopicDescription( (String) jsonObj.get( "topicDescription" ));
                this.setOwner( (String) jsonObj.get( "owner" ) );
-               //this.setLastMod();
                this.setStatus( (String) jsonObj.get( "status" ) );
                this.setReplicationCase( ReplicationType.Validator( (String) jsonObj.get( "replicationCase" ) ));
                this.setFqtnStyle( FqtnType.Validator( (String) jsonObj.get( "fqtnStyle" ) ) );
@@ -220,6 +236,7 @@ public class Topic extends DmaapObject  {
                return clients;
        }
 
+       @ApiModelProperty( hidden=true )
        public int getNumClients() {
                if ( this.clients == null ) {
                        return 0;
@@ -282,6 +299,18 @@ public class Topic extends DmaapObject  {
 
 
 
+       public String getPublisherRole() {
+               return publisherRole;
+       }
+       public void setPublisherRole(String publisherRole) {
+               this.publisherRole = publisherRole;
+       }
+       public String getSubscriberRole() {
+               return subscriberRole;
+       }
+       public void setSubscriberRole(String subscriberRole) {
+               this.subscriberRole = subscriberRole;
+       }
        public String toProvJSON() {
                StringBuilder str = new StringBuilder();
                str.append("{ \"topicName\": \"");
@@ -297,7 +326,7 @@ public class Topic extends DmaapObject  {
                logger.info( str.toString() );
                return str.toString();
        }
-       
+       @ApiModelProperty( hidden=true )
        public byte[] getBytes() {
                return toProvJSON().getBytes(StandardCharsets.UTF_8);
        }