| POST,OPTIONS | /v1/inspections/{InspectionUID}/items/{InspectionItemID}/{Raise} |
|---|
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 InspectionPhoto:
attachment_id: Optional[str] = None
file_name: Optional[str] = None
url: Optional[str] = None
created_by: Optional[str] = None
created_date: Optional[datetime.datetime] = None
has_annotation: bool = False
annotated_attachment_id: Optional[str] = None
annotated_url: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InspectionItem:
inspection_item_i_d: int = 0
inspection_i_d: int = 0
seq: int = 0
section: Optional[str] = None
prompt: Optional[str] = None
response_type: Optional[str] = None
is_required: bool = False
unit: Optional[str] = None
guidance: Optional[str] = None
result: Optional[str] = None
value: Optional[str] = None
notes: Optional[str] = None
photo_count: int = 0
linked_punch_item_i_d: Optional[int] = None
linked_punch_no: Optional[str] = None
linked_punch_status: Optional[str] = None
linked_ncr_i_d: Optional[int] = None
linked_ncr_no: Optional[str] = None
linked_action_i_d: Optional[int] = None
answered_by: Optional[str] = None
answered_at: Optional[datetime.datetime] = None
photos: List[InspectionPhoto] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InspectionRequest:
inspection_request_i_d: int = 0
inspection_i_d: int = 0
agency: Optional[str] = None
contact_name: Optional[str] = None
contact_phone: Optional[str] = None
permit_no: Optional[str] = None
requested_date: Optional[datetime.datetime] = None
requested_window: Optional[str] = None
status: Optional[str] = None
confirmation_no: Optional[str] = None
outcome: Optional[str] = None
created_by: Optional[str] = None
created_at: Optional[datetime.datetime] = None
updated_at: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SignatureRecord:
signature_record_i_d: int = 0
entity_type: Optional[str] = None
entity_i_d: int = 0
role: Optional[str] = None
signer_name: Optional[str] = None
signer_contact_i_d: Optional[int] = None
signer_user_id: Optional[str] = None
method: Optional[str] = None
image_attachment_id: Optional[str] = None
image_url: Optional[str] = None
image_hash: Optional[str] = None
document_hash: Optional[str] = None
consent_text: Optional[str] = None
ip_address: Optional[str] = None
user_agent: Optional[str] = None
signed_at: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Inspection:
inspection_i_d: int = 0
inspection_u_i_d: Optional[str] = None
project_i_d: int = 0
project_name: Optional[str] = None
job_i_d: Optional[int] = None
job_name: Optional[str] = None
inspection_no: Optional[str] = None
type: Optional[str] = None
title: Optional[str] = None
status: Optional[str] = None
template_u_i_d: Optional[str] = None
template_version_no: Optional[int] = None
scheduled_for: Optional[datetime.datetime] = None
started_at: Optional[datetime.datetime] = None
completed_at: Optional[datetime.datetime] = None
closed_at: Optional[datetime.datetime] = None
inspector_contact_i_d: Optional[int] = None
inspector_name: Optional[str] = None
agency_name: Optional[str] = None
permit_no: Optional[str] = None
location_text: Optional[str] = None
notes: Optional[str] = None
weather_json: Optional[str] = None
items_total: int = 0
items_passed: int = 0
items_failed: int = 0
outcome: Optional[str] = None
outcome_notes: Optional[str] = None
reinspection_of_inspection_i_d: Optional[int] = None
qc_hold_point_i_d: Optional[int] = None
report_attachment_id: Optional[str] = None
request_count: int = 0
signature_count: int = 0
created_by: Optional[str] = None
created_at: Optional[datetime.datetime] = None
updated_at: Optional[datetime.datetime] = None
items: List[InspectionItem] = field(default_factory=list)
requests: List[InspectionRequest] = field(default_factory=list)
signatures: List[SignatureRecord] = field(default_factory=list)
actions: List[str] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InspectionResponse:
response_status: Optional[ResponseStatus] = None
inspection: Optional[Inspection] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InspectionRaiseRequest:
inspection_u_i_d: Optional[str] = None
inspection_item_i_d: int = 0
raise_: Optional[str] = field(metadata=config(field_name='raise'), default=None)
title: Optional[str] = None
description: Optional[str] = None
area: Optional[str] = None
trade: Optional[str] = None
assigned_sub: Optional[str] = None
priority: Optional[str] = None
Python InspectionRaiseRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/inspections/{InspectionUID}/items/{InspectionItemID}/{Raise} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"InspectionUID":"00000000000000000000000000000000","InspectionItemID":0,"Raise":"String","Title":"String","Description":"String","Area":"String","Trade":"String","AssignedSub":"String","Priority":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Inspection":{"InspectionID":0,"InspectionUID":"00000000000000000000000000000000","ProjectID":0,"ProjectName":"String","JobID":0,"JobName":"String","InspectionNo":"String","Type":"String","Title":"String","Status":"String","TemplateUID":"00000000000000000000000000000000","TemplateVersionNo":0,"ScheduledFor":"0001-01-01T00:00:00.0000000","StartedAt":"0001-01-01T00:00:00.0000000","CompletedAt":"0001-01-01T00:00:00.0000000","ClosedAt":"0001-01-01T00:00:00.0000000","InspectorContactID":0,"InspectorName":"String","AgencyName":"String","PermitNo":"String","LocationText":"String","Notes":"String","WeatherJson":"String","ItemsTotal":0,"ItemsPassed":0,"ItemsFailed":0,"Outcome":"String","OutcomeNotes":"String","ReinspectionOfInspectionID":0,"QcHoldPointID":0,"ReportAttachmentId":"00000000000000000000000000000000","RequestCount":0,"SignatureCount":0,"CreatedBy":"String","CreatedAt":"0001-01-01T00:00:00.0000000","UpdatedAt":"0001-01-01T00:00:00.0000000","Items":[{"InspectionItemID":0,"InspectionID":0,"Seq":0,"Section":"String","Prompt":"String","ResponseType":"String","IsRequired":false,"Unit":"String","Guidance":"String","Result":"String","Value":"String","Notes":"String","PhotoCount":0,"LinkedPunchItemID":0,"LinkedPunchNo":"String","LinkedPunchStatus":"String","LinkedNcrID":0,"LinkedNcrNo":"String","LinkedActionID":0,"AnsweredBy":"String","AnsweredAt":"0001-01-01T00:00:00.0000000","Photos":[{"AttachmentId":"00000000000000000000000000000000","FileName":"String","Url":"String","CreatedBy":"String","CreatedDate":"0001-01-01T00:00:00.0000000","HasAnnotation":false,"AnnotatedAttachmentId":"00000000000000000000000000000000","AnnotatedUrl":"String"}]}],"Requests":[{"InspectionRequestID":0,"InspectionID":0,"Agency":"String","ContactName":"String","ContactPhone":"String","PermitNo":"String","RequestedDate":"0001-01-01T00:00:00.0000000","RequestedWindow":"String","Status":"String","ConfirmationNo":"String","Outcome":"String","CreatedBy":"String","CreatedAt":"0001-01-01T00:00:00.0000000","UpdatedAt":"0001-01-01T00:00:00.0000000"}],"Signatures":[{"SignatureRecordID":0,"EntityType":"String","EntityID":0,"Role":"String","SignerName":"String","SignerContactID":0,"SignerUserId":"String","Method":"String","ImageAttachmentId":"00000000000000000000000000000000","ImageUrl":"String","ImageHash":"String","DocumentHash":"String","ConsentText":"String","IpAddress":"String","UserAgent":"String","SignedAt":"0001-01-01T00:00:00.0000000"}],"Actions":["String"]}}