POST | /api/schedules/{RequestId}/cancel |
---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
/**
* Creates or Reschedules a SupplierConnect schedule. This will return the id of the schedule request created and the communication id of the notification sent.
*/
@Api(Description="Creates or Reschedules a SupplierConnect schedule. This will return the id of the schedule request created and the communication id of the notification sent.")
@DataContract
open class CancelScheduleRequest
{
/**
* Id of the schedule request to be recreated
*/
@DataMember(Name="RequestId")
@SerializedName("RequestId")
@ApiMember(Description="Id of the schedule request to be recreated", IsRequired=true, Name="RequestId")
open var RequestId:UUID? = null
/**
* Date/Time of the activity
*/
@DataMember(Name="ScheduleDateTime")
@SerializedName("ScheduleDateTime")
@ApiMember(Description="Date/Time of the activity", IsRequired=true, Name="ScheduleDateTime")
@Required()
open var ScheduleDateTime:Date? = null
@DataMember(Name="Requester")
@SerializedName("Requester")
open var Requester:ContactInfo? = null
@DataMember(Name="Supplier")
@SerializedName("Supplier")
open var Supplier:ContactInfo? = null
@DataMember(Name="Project")
@SerializedName("Project")
open var Project:ProjectInfo? = null
@DataMember(Name="PurchaseOrder")
@SerializedName("PurchaseOrder")
open var PurchaseOrder:PurchaseOrderInfo? = null
@DataMember(Name="Activity")
@SerializedName("Activity")
open var Activity:ActivityReference? = null
@DataMember(Name="Params")
@SerializedName("Params")
open var Params:ArrayList<ScheduleParams>? = null
@DataMember(Name="Attachments")
@SerializedName("Attachments")
open var Attachments:ArrayList<EmailAttachment>? = null
}
@DataContract
open class ContactInfo
{
@DataMember(Name="Id")
@SerializedName("Id")
open var Id:UUID? = null
@DataMember(Name="Name")
@SerializedName("Name")
open var Name:String? = null
@DataMember(Name="Email")
@SerializedName("Email")
open var Email:String? = null
@DataMember(Name="Phone")
@SerializedName("Phone")
open var Phone:String? = null
@DataMember(Name="ContactReference")
@SerializedName("ContactReference")
open var ContactReference:ObjectReference? = null
}
@DataContract
open class ObjectReference
{
@DataMember(Name="RmsTableContextId")
@SerializedName("RmsTableContextId")
open var RmsTableContextId:UUID? = null
@DataMember(Name="AlternateKey")
@SerializedName("AlternateKey")
open var AlternateKey:String? = null
@DataMember(Name="DataSourceInstanceId")
@SerializedName("DataSourceInstanceId")
open var DataSourceInstanceId:UUID? = null
}
@DataContract
open class ProjectInfo
{
@DataMember(Name="Id")
@SerializedName("Id")
open var Id:UUID? = null
@DataMember(Name="Name")
@SerializedName("Name")
open var Name:String? = null
@DataMember(Name="Reference")
@SerializedName("Reference")
open var Reference:String? = null
@DataMember(Name="Description")
@SerializedName("Description")
open var Description:String? = null
@DataMember(Name="Address")
@SerializedName("Address")
open var Address:String? = null
@DataMember(Name="HouseType")
@SerializedName("HouseType")
open var HouseType:String? = null
@DataMember(Name="Elevation")
@SerializedName("Elevation")
open var Elevation:String? = null
@DataMember(Name="CustomerName")
@SerializedName("CustomerName")
open var CustomerName:String? = null
@DataMember(Name="Supervisor")
@SerializedName("Supervisor")
open var Supervisor:ContactInfo? = null
@DataMember(Name="ProjectReference")
@SerializedName("ProjectReference")
open var ProjectReference:ObjectReference? = null
}
@DataContract
open class PurchaseOrderInfo
{
@DataMember(Name="Id")
@SerializedName("Id")
open var Id:UUID? = null
@DataMember(Name="Reference")
@SerializedName("Reference")
open var Reference:String? = null
@DataMember(Name="Description")
@SerializedName("Description")
open var Description:String? = null
@DataMember(Name="PurchaseOrderReference")
@SerializedName("PurchaseOrderReference")
open var PurchaseOrderReference:ObjectReference? = null
}
@DataContract
open class ActivityReference
{
/**
* Name/details of the activity
*/
@DataMember(Name="name")
@SerializedName("name")
@ApiMember(Description="Name/details of the activity", IsRequired=true, Name="Name")
open var Name:String? = null
@DataMember(Name="notes")
@SerializedName("notes")
open var Notes:String? = null
}
@DataContract
open class ScheduleParams
{
@DataMember(Name="Name")
@SerializedName("Name")
open var Name:String? = null
@DataMember(Name="Value")
@SerializedName("Value")
open var Value:String? = null
}
open class EmailAttachment
{
open var FileName:String? = null
open var ContentType:String? = null
open var Path:String? = null
open var Url:String? = null
open var Length:Long? = null
open var FileStream:InputStream? = null
open var StreamContent:String? = null
open var AttachmentType:AttachmentType? = null
open var ProcessedAndUploadedAsBlob:Boolean? = null
}
enum class AttachmentType
{
Url,
FileStream,
}
open class ScheduleResponse
{
open var ReferenceId:UUID? = null
open var CommunicationId:UUID? = null
open var Success:Boolean? = null
open var Message:String? = null
open var Payload:String? = null
}
Kotlin CancelScheduleRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /api/schedules/{RequestId}/cancel HTTP/1.1
Host: production-eros-gateway-api-supplierconnect.azurewebsites.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ScheduleDateTime: 0001-01-01,
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,
CustomerName: String,
Supervisor:
{
Name: String,
Email: String,
Phone: String,
ContactReference:
{
AlternateKey: 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
}
]
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { Success: False, Message: String, Payload: String }