ASH.ResourceLibrary.WebApi

<back to all web services

TopicsRequest

Requires Authentication
The following routes are available for this service:
GET/topicsUse to get Resource Library Topics
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class TopicsRequest : BasicResourceLibraryRequest()
{
    var includeCompletionStatus:Boolean? = null
    var isMobile:Boolean? = null
    var includeSubtopicItems:Boolean? = null
    var includeResourceItems:Boolean? = null
    /**
    * Set it to true if the topics being requested belogs to digital fitness. Don't set it if unsure.
    */
    @ApiMember(Description="Set it to true if the topics being requested belogs to digital fitness. Don't set it if unsure.")
    var digitalFitness:Boolean? = null
}

open class BasicResourceLibraryRequest
{
    var resourceLibraryMemberId:Int? = null
}

open class TopicsResponse
{
    var topics:ArrayList<Topic> = ArrayList<Topic>()
}

open class Topic
{
    var id:String? = null
    var subtopicItems:ArrayList<SubTopic> = ArrayList<SubTopic>()
    var resourceItems:ArrayList<ResourceItem> = ArrayList<ResourceItem>()
    var title:String? = null
    var isVisible:String? = null
    var resourceCount:Int? = null
}

open class SubTopic
{
    var id:String? = null
    var title:String? = null
    var resourceCount:Int? = null
    var resourceItems:ArrayList<ResourceItem> = ArrayList<ResourceItem>()
}

open class ResourceItem : ResourceCard()
{
    var content:String? = null
    var credit:String? = null
    var references:String? = null
    var disclaimer:String? = null
    var headerImage:String? = null
    var origin:String? = null
    var originId:String? = null
    var tags:ArrayList<Tag> = ArrayList<Tag>()
    var categories:ArrayList<Category> = ArrayList<Category>()
    var index:Int? = null
    var activityLevel:String? = null
    var activityDetails:String? = null
    var transcript:String? = null
    var isArchived:Boolean? = null
    var activities:ArrayList<ActivityItem> = ArrayList<ActivityItem>()
    var seriesItems:ArrayList<SeriesItem> = ArrayList<SeriesItem>()
    var videoId:String? = null
    var focus:String? = null
    var series:String? = null
    var seriesUrl:String? = null
    var category:String? = null
    var equipments:ArrayList<String> = ArrayList<String>()
    var durationRange:String? = null
    var providerName:String? = null
    var uploadDate:String? = null
    var completionDate:Date? = null
    var level:String? = null
    var bodyFocus:String? = null
    var altMediaPaths:AltMediaPaths? = null
    var subtitles:String? = null
    var drmEncrypted:Boolean? = null
    var screenshots:ArrayList<ScreenshotItem> = ArrayList<ScreenshotItem>()
}

open class ResourceCard
{
    var id:String? = null
    var title:String? = null
    var description:String? = null
    var descriptionSummary:String? = null
    @SerializedName("type") var Type:String? = null
    var content:String? = null
    var isComplete:Boolean? = null
    var isFavorite:Boolean? = null
    var isImplicitlyComplete:Boolean? = null
    var mediaPath:String? = null
    var isConfirmable:Boolean? = null
    var isWcagCompliant:Boolean? = null
    var duration:String? = null
    var preview:String? = null
    var calories:Int? = null
    var instructor:String? = null
    var thumbnail:String? = null
    var difficulty:String? = null
    var tags:ArrayList<Tag> = ArrayList<Tag>()
    var subtitles:String? = null
    var screenshots:ArrayList<ScreenshotItem> = ArrayList<ScreenshotItem>()
    var drmEncrypted:Boolean? = null
}

open class Tag
{
    var id:String? = null
    var title:String? = null
}

open class ScreenshotItem
{
    var largeFilepathS3:String? = null
    var thumbFilepathS3:String? = null
    var order:BigDecimal? = null
    var description:String? = null
}

open class Category
{
    var id:String? = null
    var subtopicItems:ArrayList<SubTopic> = ArrayList<SubTopic>()
    var resourceItems:ArrayList<ResourceItem> = ArrayList<ResourceItem>()
    var title:String? = null
    var isVisible:String? = null
    var resourceCount:Int? = null
}

open class ActivityItem
{
    var name:String? = null
    var id:String? = null
}

open class SeriesItem
{
    var id:String? = null
    var title:String? = null
}

open class AltMediaPaths
{
    var webm:String? = null
    var ogv:String? = null
    var mp4Low:String? = null
    var mp4High:String? = null
}

Kotlin TopicsRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /topics HTTP/1.1 
Host: resourcelibrary.api.ashcompanies.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<TopicsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ASH.ResourceLibrary.Interfaces.ServiceModels">
  <Topics xmlns:d2p1="http://schemas.datacontract.org/2004/07/ASH.ResourceLibrary.Interfaces.Models" i:nil="true" />
</TopicsResponse>