PUT | /RestApi/lists-api/items |
---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SpecificListsGetRequest:
ids: Optional[List[str]] = None
provider: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Status:
text: Optional[str] = None
primary_provider: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WcfContentLifecycleStatus:
is_published: bool = False
message: Optional[str] = None
locked_by_username: Optional[str] = None
is_admin: bool = False
is_locked: bool = False
is_locked_by_me: bool = False
supports_content_lifecycle: bool = False
error_message: Optional[str] = None
locked_since: Optional[datetime.datetime] = None
last_modified: Optional[datetime.datetime] = None
last_modified_by: Optional[str] = None
publication_date: Optional[datetime.datetime] = None
workflow_status: Optional[str] = None
has_live_version: bool = False
class WorkflowVisualType(str, Enum):
BUTTON = 'Button'
LINK = 'Link'
LABEL = 'Label'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WorkflowVisualElement:
title: Optional[str] = None
operation_name: Optional[str] = None
argument_dialog_name: Optional[str] = None
visual_type: Optional[WorkflowVisualType] = None
decision_type: Optional[str] = None
persist_on_decision: bool = False
closes_form: bool = False
content_command_name: Optional[str] = None
css_class: Optional[str] = None
ordinal: int = 0
warning_message: Optional[str] = None
run_as_u_i_command: bool = False
parameters: Optional[Hashtable] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WcfItemBase:
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WcfChange(WcfItemBase):
id: Optional[str] = None
next_version_number: int = 0
prev_version_number: int = 0
item_id: Optional[str] = None
version_number: int = 0
version: Optional[str] = None
owner: Optional[str] = None
comment: Optional[str] = None
label: Optional[str] = None
change_type: Optional[str] = None
is_published_version: bool = False
is_last_published_version: bool = False
change_description: Optional[str] = None
last_modified: datetime.datetime = datetime.datetime(1, 1, 1)
date_created: datetime.datetime = datetime.datetime(1, 1, 1)
created_by_user_name: Optional[str] = None
previous_id: Optional[str] = None
next_id: Optional[str] = None
metadata: Optional[str] = None
additional_info: Optional[str] = None
culture: Optional[str] = None
available_languages: Optional[IList[str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WcfApprovalTrackingRecord:
date_created: datetime.datetime = datetime.datetime(1, 1, 1)
note: Optional[str] = None
status: Optional[str] = None
ui_status: Optional[str] = None
user_name: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContentViewModelBase(ILocalizable):
parent_url: Optional[str] = None
is_editable: bool = False
is_deletable: bool = False
is_unlockable: bool = False
ui_status: Optional[str] = None
additional_status: Optional[Status] = None
items_count: int = 0
id: Optional[str] = None
live_content_id: Optional[str] = None
title: Optional[str] = None
owner: Optional[str] = None
author: Optional[str] = None
date_created: datetime.datetime = datetime.datetime(1, 1, 1)
date_modified: datetime.datetime = datetime.datetime(1, 1, 1)
publication_date: datetime.datetime = datetime.datetime(1, 1, 1)
provider_name: Optional[str] = None
expiration_date: datetime.datetime = datetime.datetime(1, 1, 1)
status: Optional[str] = None
comments_count: int = 0
lifecycle_status: Optional[WcfContentLifecycleStatus] = None
workflow_operations: Optional[IList[WorkflowVisualElement]] = None
version_info: Optional[WcfChange] = None
default_page_id: Optional[str] = None
last_approval_tracking_record: Optional[WcfApprovalTrackingRecord] = None
version: int = 0
available_languages: Optional[List[str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HierarchicalContentViewModelBase(ContentViewModelBase):
url: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ListViewModel(HierarchicalContentViewModelBase):
list_item_count: int = 0
last_item_date: Optional[datetime.datetime] = None
ListViewModel = TypeVar('ListViewModel')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CollectionContext(Generic[ListViewModel]):
total_count: int = 0
is_generic: bool = False
context: Optional[Dict[str, str]] = None
items: Optional[List[ListViewModel]] = None
Python SpecificListsGetRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
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: application/json
Content-Type: application/json
Content-Length: length
{"Ids":["00000000-0000-0000-0000-000000000000"],"Provider":"String"}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"TotalCount":0,"IsGeneric":false,"Items":[]}