Note Models
Global note models for the ACPortal API.
Source-of-truth schemas in swagger:
Notes— response shape forGET /note.NoteModel— request body for bothPOST /noteandPUT /note/{id}. The API does not split create-vs-update into two shapes; the SDK exposes a singleNoteRequestto match.SuggestedContactEntity— response item forGET /note/suggestUsers.
The legacy GlobalNoteCreateRequest / GlobalNoteUpdateRequest names
remain as aliases for NoteRequest so existing imports keep working.
- class ab.api.models.notes.NotesListParams(*, category=None, jobId=None, contactId=None, companyId=None)[source]
Bases:
RequestModelQuery parameters for GET /note.
- Parameters:
- model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ab.api.models.notes.NotesSuggestUsersParams(*, SearchKey=None, JobFranchiseeId=None, CompanyId=None)[source]
Bases:
RequestModelQuery parameters for GET /note/suggestUsers.
Swagger marks
SearchKeyas required. The endpoint method signature enforces this with a keyword-only required parameter so users can’t accidentally omit it.- model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ab.api.models.notes.SuggestedUser(*, id=None, fullName=None, **extra_data)[source]
Bases:
ResponseModelUser suggestion for mentions — element of
GET /note/suggestUsers.Shape matches swagger
SuggestedContactEntity(id,fullName). Theidis the forward reference consumed byNoteRequest.assigned_userswhen posting a new note.- model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ab.api.models.notes.GlobalNote(*, noteID=None, isImportant=None, comments=None, category=None, dueDate=None, jobId=None, crmContactId=None, contactId=None, companyId=None, userID=None, importance=None, author=None, dueDates=None, categoryName=None, createdDate=None, createdBy=None, modifiedBy=None, modifiyDate=None, franchiseID=None, isCompleted=None, isGlobal=None, isShared=None, assignedContactNames=None, assignedUsers=None, isJobLevel=None, **extra_data)[source]
Bases:
ResponseModelNote record — element of
GET /noteresponse.Shape matches swagger
Notes. The server-side field is spelledmodifiyDate(sic — typo in the API); the SDK preserves it via alias so the Python attribute can use the corrected spelling.- Parameters:
noteID (int | None)
isImportant (bool | None)
comments (str | None)
category (str | None)
dueDate (datetime | None)
jobId (str | None)
crmContactId (int | None)
contactId (str | None)
companyId (str | None)
userID (str | None)
importance (str | None)
author (str | None)
dueDates (str | None)
categoryName (str | None)
createdDate (datetime | None)
createdBy (str | None)
modifiedBy (str | None)
modifiyDate (datetime | None)
franchiseID (str | None)
isCompleted (bool | None)
isGlobal (bool | None)
isShared (bool | None)
assignedUsers (List[SuggestedUser] | None)
isJobLevel (bool | None)
extra_data (Any)
- assigned_users: List[SuggestedUser] | None
- model_config = {'alias_generator': <function _to_camel>, 'extra': 'allow', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class ab.api.models.notes.NoteRequest(*, comments, category, dueDate=None, isImportant=None, isCompleted=None, jobId=None, sendNotification=None, assignedUsers=None, crmContactId=None, companyId=None, isGlobal=None, isShared=None)[source]
Bases:
RequestModelBody for
POST /noteandPUT /note/{id}.Matches swagger
NoteModel. The API uses the same schema for create and update; the legacyGlobalNoteCreateRequest/GlobalNoteUpdateRequestnames are aliases of this class.Required fields:
comments(1-8000 chars) andcategory(UUID). Sourcingcategory: callapi.lookup.get_refer_category()orapi.lookup.get_refer_category_hierarchy()and use a returnedLookupValue.value(orid).- Parameters:
comments (Annotated[str, MinLen(min_length=1), MaxLen(max_length=8000)])
category (str)
dueDate (date | None)
isImportant (bool | None)
isCompleted (bool | None)
jobId (str | None)
sendNotification (bool | None)
assignedUsers (List[SuggestedUser] | None)
crmContactId (int | None)
companyId (str | None)
isGlobal (bool | None)
isShared (bool | None)
- assigned_users: List[SuggestedUser] | None
- model_config = {'alias_generator': <function _to_camel>, 'extra': 'forbid', 'populate_by_name': True, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ab.api.models.notes.GlobalNoteCreateRequest
alias of
NoteRequest
- ab.api.models.notes.GlobalNoteUpdateRequest
alias of
NoteRequest