SupplierConnect Gateway API

<back to all web services

GetSchedules

Retrieve SupplierConnect schedule(s) by given ids. This will return SupplierConnect schedule request(s), and the associated other details such as statuses

Requires Authentication
The following routes are available for this service:
GET/api/schedules
GET/api/schedules/{Ids}
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 SupplierConnectObjectReference:
    rms_table_context_id: Optional[str] = None
    alternate_key: Optional[str] = None
    data_source_instance_id: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupplierConnectContactInfo:
    id: Optional[str] = None
    name: Optional[str] = None
    email: Optional[str] = None
    phone: Optional[str] = None
    contact_reference: Optional[SupplierConnectObjectReference] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupplierConnectProjectInfo:
    id: Optional[str] = None
    name: Optional[str] = None
    reference: Optional[str] = None
    description: Optional[str] = None
    address: Optional[str] = None
    house_type: Optional[str] = None
    elevation: Optional[str] = None
    supervisor: Optional[SupplierConnectContactInfo] = None
    customer_name: Optional[str] = None
    project_reference: Optional[SupplierConnectObjectReference] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupplierConnectPurchaseOrderInfo:
    id: Optional[str] = None
    reference: Optional[str] = None
    description: Optional[str] = None
    project_id: Optional[str] = None
    purchase_order_reference: Optional[SupplierConnectObjectReference] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupplierConnectActivityReference:
    name: Optional[str] = None
    notes: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupplierConnectScheduleParams:
    name: Optional[str] = None
    value: Optional[str] = None


class AttachmentType(str, Enum):
    URL = 'Url'
    FILE_STREAM = 'FileStream'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EmailAttachment:
    file_name: Optional[str] = None
    content_type: Optional[str] = None
    path: Optional[str] = None
    url: Optional[str] = None
    length: int = 0
    file_stream: Optional[bytes] = None
    stream_content: Optional[str] = None
    attachment_type: Optional[AttachmentType] = None
    processed_and_uploaded_as_blob: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SupplierConnectSchedule:
    request_id: Optional[str] = None
    previous_request_id: Optional[str] = None
    licensee_id: Optional[str] = None
    licensee_name: Optional[str] = None
    schedule_date_time: datetime.datetime = datetime.datetime(1, 1, 1)
    requester: Optional[SupplierConnectContactInfo] = None
    supplier: Optional[SupplierConnectContactInfo] = None
    project: Optional[SupplierConnectProjectInfo] = None
    purchase_order: Optional[SupplierConnectPurchaseOrderInfo] = None
    activity: Optional[SupplierConnectActivityReference] = None
    params: Optional[List[SupplierConnectScheduleParams]] = None
    attachments: Optional[List[EmailAttachment]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ScheduleDetails(SupplierConnectSchedule):
    reference_id: Optional[str] = None
    index: int = 0
    status_id: Optional[str] = None
    status: Optional[str] = None
    status_message: Optional[str] = None
    requested_by: Optional[str] = None
    requested_date: Optional[datetime.datetime] = None
    communication_id: Optional[str] = None


# @ApiResponse(Description="Returns the list of the schedule requests for the given list of Ids")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetSchedulesResponse:
    success: bool = False
    message: Optional[str] = None
    schedule_requests: Optional[List[ScheduleDetails]] = None
    response_status: Optional[ResponseStatus] = None
    last_row_version: Optional[str] = None


# @Api(Description="Retrieve SupplierConnect schedule(s) by given ids. This will return SupplierConnect schedule request(s), and the associated other details such as statuses")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetSchedules:
    """
    Retrieve SupplierConnect schedule(s) by given ids. This will return SupplierConnect schedule request(s), and the associated other details such as statuses
    """

    # @ApiMember(Description="Id or list of Ids of the schedule request(s) to be retrieved", IsRequired=true, Name="id")
    ids: List[str] = field(default_factory=list)
    """
    Id or list of Ids of the schedule request(s) to be retrieved
    """

Python GetSchedules 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.

GET /api/schedules HTTP/1.1 
Host: production-eros-gateway-api-supplierconnect.azurewebsites.net 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Success":false,"Message":"String","ScheduleRequests":[{"Index":0,"Status":"String","StatusMessage":"String","RequestedBy":"String","RequestedDate":"0001-01-01T00:00:00.0000000","LicenseeName":"String","ScheduleDateTime":"0001-01-01T00:00:00.0000000","Requester":{"Name":"String","Email":"String","Phone":"String","ContactReference":{"AlternateKey":"String"}},"Supplier":{"Name":"String","Email":"String","Phone":"String","ContactReference":{"AlternateKey":"String"}},"Project":{"Name":"String","Reference":"String","Description":"String","Address":"String","HouseType":"String","Elevation":"String","Supervisor":{"Name":"String","Email":"String","Phone":"String","ContactReference":{"AlternateKey":"String"}},"CustomerName":"String","ProjectReference":{"AlternateKey":"String"}},"PurchaseOrder":{"Reference":"String","Description":"String","PurchaseOrderReference":{"AlternateKey":"String"}},"Activity":{"Name":"String","Notes":"String"},"Params":[{"Name":"String","Value":"String"}],"Attachments":[{"FileName":"String","ContentType":"String","Path":"String","Url":"String","Length":0,"StreamContent":"String","AttachmentType":"Url","ProcessedAndUploadedAsBlob":false}]}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"LastRowVersion":"String"}