<back to all web services

SpecificListsGetRequest

The following routes are available for this service:
PUT/RestApi/lists-api/items
import Foundation
import ServiceStack

public class SpecificListsGetRequest : Codable
{
    public var ids:[String] = []
    public var provider:String

    required public init(){}
}

// @DataContract
public class CollectionContext<ListViewModel : Codable> : Codable
{
    // @DataMember
    public var totalCount:Int

    // @DataMember
    public var isGeneric:Bool

    // @DataMember
    public var context:[String:String] = [:]

    // @DataMember
    public var items:[ListViewModel] = []

    required public init(){}
}

public class ListViewModel : HierarchicalContentViewModelBase
{
    // @DataMember
    public var listItemCount:Int

    // @DataMember
    public var lastItemDate:Date?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case listItemCount
        case lastItemDate
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        listItemCount = try container.decodeIfPresent(Int.self, forKey: .listItemCount)
        lastItemDate = try container.decodeIfPresent(Date.self, forKey: .lastItemDate)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if listItemCount != nil { try container.encode(listItemCount, forKey: .listItemCount) }
        if lastItemDate != nil { try container.encode(lastItemDate, forKey: .lastItemDate) }
    }
}

// @DataContract
public class HierarchicalContentViewModelBase : ContentViewModelBase
{
    // @DataMember
    public var url:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case url
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        url = try container.decodeIfPresent(String.self, forKey: .url)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if url != nil { try container.encode(url, forKey: .url) }
    }
}

// @DataContract
public class ContentViewModelBase : ILocalizable, Codable
{
    // @DataMember
    public var parentUrl:String

    // @DataMember
    public var isEditable:Bool

    // @DataMember
    public var isDeletable:Bool

    // @DataMember
    public var isUnlockable:Bool

    // @DataMember
    public var uiStatus:String

    // @DataMember
    public var additionalStatus:Status

    // @DataMember
    public var itemsCount:Int

    // @DataMember
    public var id:String

    // @DataMember
    public var liveContentId:String?

    // @DataMember
    public var title:String

    // @DataMember
    public var owner:String

    // @DataMember
    public var author:String

    // @DataMember
    public var dateCreated:Date

    // @DataMember
    public var dateModified:Date

    // @DataMember
    public var publicationDate:Date

    // @DataMember
    public var providerName:String

    // @DataMember
    public var expirationDate:Date

    // @DataMember
    public var status:String

    // @DataMember
    public var commentsCount:Int

    // @DataMember
    public var lifecycleStatus:WcfContentLifecycleStatus

    // @DataMember
    public var workflowOperations:IList<WorkflowVisualElement>

    // @DataMember
    public var versionInfo:WcfChange

    // @DataMember
    public var defaultPageId:String?

    // @DataMember
    public var lastApprovalTrackingRecord:WcfApprovalTrackingRecord

    // @DataMember
    public var version:Int

    // @DataMember
    public var availableLanguages:[String] = []

    required public init(){}
}

// @DataContract
public class Status : Codable
{
    // @DataMember
    public var text:String

    // @DataMember
    public var primaryProvider:String

    required public init(){}
}

// @DataContract
public class WcfContentLifecycleStatus : Codable
{
    // @DataMember
    public var isPublished:Bool

    // @DataMember
    public var message:String

    // @DataMember
    public var lockedByUsername:String

    // @DataMember
    public var isAdmin:Bool

    // @DataMember
    public var isLocked:Bool

    // @DataMember
    public var isLockedByMe:Bool

    // @DataMember
    public var supportsContentLifecycle:Bool

    // @DataMember
    public var errorMessage:String

    // @DataMember
    public var lockedSince:Date?

    // @DataMember
    public var lastModified:Date?

    // @DataMember
    public var lastModifiedBy:String

    // @DataMember
    public var publicationDate:Date?

    // @DataMember
    public var workflowStatus:String

    // @DataMember
    public var hasLiveVersion:Bool

    required public init(){}
}

// @DataContract
public class WorkflowVisualElement : Codable
{
    // @DataMember
    public var title:String

    // @DataMember
    public var operationName:String

    // @DataMember
    public var argumentDialogName:String

    // @DataMember
    public var visualType:WorkflowVisualType

    // @DataMember
    public var decisionType:String

    // @DataMember
    public var persistOnDecision:Bool

    // @DataMember
    public var closesForm:Bool

    // @DataMember
    public var contentCommandName:String

    // @DataMember
    public var cssClass:String

    // @DataMember
    public var ordinal:Int

    // @DataMember
    public var warningMessage:String

    // @DataMember
    public var runAsUICommand:Bool

    // @DataMember
    public var parameters:Hashtable

    required public init(){}
}

public enum WorkflowVisualType : String, Codable
{
    case Button
    case Link
    case Label
}

// @DataContract
public class WcfChange : WcfItemBase
{
    // @DataMember
    public var id:String

    // @DataMember
    public var nextVersionNumber:Int

    // @DataMember
    public var prevVersionNumber:Int

    // @DataMember
    public var itemId:String

    // @DataMember
    public var versionNumber:Int

    // @DataMember
    public var version:String

    // @DataMember
    public var owner:String

    // @DataMember
    public var comment:String

    // @DataMember
    public var label:String

    // @DataMember
    public var changeType:String

    // @DataMember
    public var isPublishedVersion:Bool

    // @DataMember
    public var isLastPublishedVersion:Bool

    // @DataMember
    public var changeDescription:String

    // @DataMember
    public var lastModified:Date

    // @DataMember
    public var dateCreated:Date

    // @DataMember
    public var createdByUserName:String

    // @DataMember
    public var previousId:String

    // @DataMember
    public var nextId:String

    // @DataMember
    public var metadata:String

    // @DataMember
    public var additionalInfo:String

    // @DataMember
    public var culture:String

    // @DataMember
    public var availableLanguages:IList<String>

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case nextVersionNumber
        case prevVersionNumber
        case itemId
        case versionNumber
        case version
        case owner
        case comment
        case label
        case changeType
        case isPublishedVersion
        case isLastPublishedVersion
        case changeDescription
        case lastModified
        case dateCreated
        case createdByUserName
        case previousId
        case nextId
        case metadata
        case additionalInfo
        case culture
        case availableLanguages
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(String.self, forKey: .id)
        nextVersionNumber = try container.decodeIfPresent(Int.self, forKey: .nextVersionNumber)
        prevVersionNumber = try container.decodeIfPresent(Int.self, forKey: .prevVersionNumber)
        itemId = try container.decodeIfPresent(String.self, forKey: .itemId)
        versionNumber = try container.decodeIfPresent(Int.self, forKey: .versionNumber)
        version = try container.decodeIfPresent(String.self, forKey: .version)
        owner = try container.decodeIfPresent(String.self, forKey: .owner)
        comment = try container.decodeIfPresent(String.self, forKey: .comment)
        label = try container.decodeIfPresent(String.self, forKey: .label)
        changeType = try container.decodeIfPresent(String.self, forKey: .changeType)
        isPublishedVersion = try container.decodeIfPresent(Bool.self, forKey: .isPublishedVersion)
        isLastPublishedVersion = try container.decodeIfPresent(Bool.self, forKey: .isLastPublishedVersion)
        changeDescription = try container.decodeIfPresent(String.self, forKey: .changeDescription)
        lastModified = try container.decodeIfPresent(Date.self, forKey: .lastModified)
        dateCreated = try container.decodeIfPresent(Date.self, forKey: .dateCreated)
        createdByUserName = try container.decodeIfPresent(String.self, forKey: .createdByUserName)
        previousId = try container.decodeIfPresent(String.self, forKey: .previousId)
        nextId = try container.decodeIfPresent(String.self, forKey: .nextId)
        metadata = try container.decodeIfPresent(String.self, forKey: .metadata)
        additionalInfo = try container.decodeIfPresent(String.self, forKey: .additionalInfo)
        culture = try container.decodeIfPresent(String.self, forKey: .culture)
        availableLanguages = try container.decodeIfPresent(IList<String>.self, forKey: .availableLanguages)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if nextVersionNumber != nil { try container.encode(nextVersionNumber, forKey: .nextVersionNumber) }
        if prevVersionNumber != nil { try container.encode(prevVersionNumber, forKey: .prevVersionNumber) }
        if itemId != nil { try container.encode(itemId, forKey: .itemId) }
        if versionNumber != nil { try container.encode(versionNumber, forKey: .versionNumber) }
        if version != nil { try container.encode(version, forKey: .version) }
        if owner != nil { try container.encode(owner, forKey: .owner) }
        if comment != nil { try container.encode(comment, forKey: .comment) }
        if label != nil { try container.encode(label, forKey: .label) }
        if changeType != nil { try container.encode(changeType, forKey: .changeType) }
        if isPublishedVersion != nil { try container.encode(isPublishedVersion, forKey: .isPublishedVersion) }
        if isLastPublishedVersion != nil { try container.encode(isLastPublishedVersion, forKey: .isLastPublishedVersion) }
        if changeDescription != nil { try container.encode(changeDescription, forKey: .changeDescription) }
        if lastModified != nil { try container.encode(lastModified, forKey: .lastModified) }
        if dateCreated != nil { try container.encode(dateCreated, forKey: .dateCreated) }
        if createdByUserName != nil { try container.encode(createdByUserName, forKey: .createdByUserName) }
        if previousId != nil { try container.encode(previousId, forKey: .previousId) }
        if nextId != nil { try container.encode(nextId, forKey: .nextId) }
        if metadata != nil { try container.encode(metadata, forKey: .metadata) }
        if additionalInfo != nil { try container.encode(additionalInfo, forKey: .additionalInfo) }
        if culture != nil { try container.encode(culture, forKey: .culture) }
        if availableLanguages != nil { try container.encode(availableLanguages, forKey: .availableLanguages) }
    }
}

// @DataContract
public class WcfItemBase : Codable
{
    required public init(){}
}

// @DataContract
public class WcfApprovalTrackingRecord : Codable
{
    // @DataMember
    public var dateCreated:Date

    // @DataMember
    public var note:String

    // @DataMember
    public var status:String

    // @DataMember
    public var uiStatus:String

    // @DataMember
    public var userName:String

    required public init(){}
}


Swift SpecificListsGetRequest DTOs

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

HTTP + OTHER

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

PUT /RestApi/lists-api/items HTTP/1.1 
Host: www.asg.com.au 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"Ids":["00000000-0000-0000-0000-000000000000"],"Provider":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"TotalCount":0,"IsGeneric":false,"Items":[]}