generated: '2026-10-14' method: derived generator: derive-data-model.py source: - openapi/safetyculture-mitti-api-openapi.yml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 400 entities_in_spec: 1440 relationships: 568 entities: - name: google.protobuf.Any fields: 1 description: '`Any` contains an arbitrary serialized protocol buffer message along with a' - name: google.type.Date fields: 3 description: '* A full date, with non-zero year, month, and day values' - name: s12.announcements.v1.HeadsUp fields: 20 - name: s12.announcements.v1.HeadsUpManageListItem fields: 16 - name: s12.announcements.v1.HeadsUpMedia fields: 4 - name: s12.announcements.v1.HeadsUpReactionSummary fields: 5 - name: s12.announcements.v1.HeadsUpReactionUser fields: 4 - name: s12.announcements.v1.HeadsUpUserListItem fields: 7 - name: s12.assets.feed.v1.FeedAssetsMaintenanceResponse fields: 2 - name: s12.assets.feed.v1.FeedMaintenancePlansResponse fields: 2 - name: s12.assets.feed.v1.FeedMaintenanceProgramsResponse fields: 2 - name: s12.assets.v1.Asset fields: 13 description: Asset entity. - name: s12.assets.v1.AssetField fields: 5 description: Describes the values of an asset field. - name: s12.assets.v1.AssetFilter fields: 8 description: Describes the filter options for the list assets endpoint.. - name: s12.assets.v1.AssetFilterOptions fields: 2 - name: s12.assets.v1.AssetLocation fields: 3 - name: s12.assets.v1.AssetMaintenanceDetailsFilter fields: 6 description: Describes the filter options for the list assets maintenance details endpoint. - name: s12.assets.v1.AssetService fields: 6 description: Service information of an asset. - name: s12.assets.v1.AssetSite fields: 2 description: Describes the values of a site that's assigned to an asset. - name: s12.assets.v1.AssetSummary fields: 10 - name: s12.assets.v1.AssetType fields: 3 description: Asset type entity. - name: s12.assets.v1.AssetsMaintenanceDetails fields: 12 - name: s12.assets.v1.AssetsOrderBy fields: 3 description: Describes the sorting options for the list assets endpoint. By default, - name: s12.assets.v1.BulkCreateAssetsRequest.Asset fields: 5 description: Individual Asset definition. - name: s12.assets.v1.BulkCreateAssetsResponse fields: 2 description: Result returned from `BulkCreateAssets` - name: s12.assets.v1.BulkCreateAssetsResponse.FailedAsset fields: 2 description: The asset that has failed to create. - name: s12.assets.v1.BulkUpdateAssetsResponse fields: 4 description: Result returned from `BulkUpdateAssets` - name: s12.assets.v1.BulkUpdateAssetsResponse.FailedAsset fields: 3 description: The asset that has failed to update. - name: s12.assets.v1.CreateAssetRequest fields: 6 description: The parameters for `CreateAsset` - name: s12.assets.v1.Field fields: 5 description: Field entity. - name: s12.assets.v1.GetProgramResponse fields: 2 description: Result returned from `GetProgram` - name: s12.assets.v1.ListAssetsMaintenanceDetailsRequest fields: 6 description: The parameters for `ListAssetsMaintenanceDetails` - name: s12.assets.v1.ListAssetsRequest fields: 5 description: The parameters for `ListAssets` - name: s12.assets.v1.Location fields: 5 description: The location of an object. - name: s12.assets.v1.LookupAssetsByFieldRequest fields: 6 description: The parameters for `LookupAssetsByField` - name: s12.assets.v1.MaintenanceInterval fields: 4 - name: s12.assets.v1.MaintenanceMetricValue fields: 2 - name: s12.assets.v1.MaintenancePlan fields: 6 - name: s12.assets.v1.MaintenancePlanSummary fields: 5 - name: s12.assets.v1.MaintenanceProgram fields: 3 - name: s12.assets.v1.MaintenanceProgramDetails fields: 3 description: The details of the maintenance program. - name: s12.assets.v1.MaintenanceService.CreatePlanBody fields: 4 description: The parameters for `CreatePlan` - name: s12.assets.v1.MaintenanceTrigger fields: 4 description: The maintenance trigger associated with a plan. - name: s12.assets.v1.MaintenanceTriggerNotification fields: 3 description: The notification maintenance trigger. - name: s12.assets.v1.StatusGroup fields: 7 description: A status group defines a set of status options that can be assigned to an asset type. - name: s12.assets.v1.StatusOption fields: 6 description: A status option within a status group. - name: s12.assets.v1.Type fields: 3 - name: s12.assets.v1.TypeField fields: 5 description: Describes the association between an asset type and an asset field. - name: s12.common.GeoPosition fields: 3 description: A position is the fundamental geographical geometry construct. - name: s12.common.GetMessagesResponse fields: 3 description: The result of `GetMessages` - name: s12.common.IdValueEntry fields: 2 - name: s12.common.Media fields: 4 - name: s12.common.Message fields: 10 - name: s12.common.MessageContent fields: 2 description: MessageContent list of possible message types. - name: s12.common.Money fields: 3 description: Represents an amount of money with its currency type. - name: s12.common.PasswordSettings fields: 1 - name: s12.common.Status fields: 3 description: The `Status` type defines a logical error model and is based on the richer - name: s12.common.UUIDValue fields: 1 description: Wrapper message for a string representation of a `UUID`. - name: s12.common.UserDocument fields: 15 - name: s12.common.v1.AiMarking fields: 2 description: AiMarking carries the AI marking fact on an API representation, so a machine - name: s12.common.v1.FeedMetadataSimple fields: 2 description: FeedMetadataSimple for a feed. - name: s12.common.v1.PaginationMetadata fields: 2 description: Pagination structure. - name: s12.contractors.feed.v1.FeedContractorCompaniesResponse fields: 2 - name: s12.contractors.feed.v1.FeedContractorCompanyDocumentsResponse fields: 2 - name: s12.contractors.feed.v1.FeedContractorCompanyUserMembershipsResponse fields: 2 - name: s12.contractors.v1.AiDocumentComplianceAudit fields: 4 description: AiDocumentComplianceAudit is the per-document-version result of running AI - name: s12.contractors.v1.CompanyContactDetails fields: 3 description: Contact details associated with a contractor company. - name: s12.contractors.v1.CompanyDocument fields: 25 - name: s12.contractors.v1.CompanyDocumentType fields: 4 - name: s12.contractors.v1.CompanyDocumentTypeForm fields: 3 description: CompanyDocumentTypeForm is a reusable blank form that lives on a document - name: s12.contractors.v1.CompanyDocumentsFilter fields: 5 - name: s12.contractors.v1.CompanyUserMetadata fields: 2 description: CompanyUserMetadata is used to represent a user in a company, along with any additional metadata. - name: s12.contractors.v1.ContractorCompany fields: 4 description: A contractor company. - name: s12.contractors.v1.ContractorCompanyAttributes fields: 11 description: Intrinsic attributes associated with a contractor company. - name: s12.contractors.v1.ContractorCompanyFilter fields: 7 description: ContractorCompanyFilter is used to filter contractor companies. - name: s12.contractors.v1.ContractorCompanyMetadata fields: 8 description: Metadata associated with a contractor company. - name: s12.contractors.v1.ListCompanyDocumentsRequest fields: 7 - name: s12.contractors.v1.ListCompanyTypesMetricsResponse.CompanyTypeWithMetrics fields: 2 - name: s12.contractors.v1.User fields: 3 description: Information about a SafetyCulture user. - name: s12.directory.v1.Folder fields: 9 description: Folder represents the main directory object - name: s12.directory.v1.FolderWithAncestors fields: 4 description: FolderWithAncestors represents a a folder with an array of ancestor folders - name: s12.directory.v1.FolderWithMembersCount fields: 6 description: FolderWithMembersCount represents a a folder with additional properties - name: s12.directory.v1.GetFolderResponse fields: 5 description: Result returned from `GetFolderResponse` - name: s12.directory.v1.GetFoldersResponse fields: 4 description: Result returned from `GetFoldersResponse` - name: s12.directory.v1.SearchFoldersRequest fields: 12 description: The parameters for `SearchFoldersRequest` - name: s12.documents.v1.DocumentsPublicService.UpdateFileBody fields: 7 - name: s12.documents.v1.File fields: 20 - name: s12.documents.v1.Folder fields: 11 - name: s12.documents.v1.GetFolderChildrenResponse fields: 4 - name: s12.documents.v1.Group fields: 2 - name: s12.documents.v1.ParentFolder fields: 2 - name: s12.documents.v1.SearchItemsResponse fields: 4 - name: s12.documents.v1.User fields: 4 - name: s12.incidents.feed.v1.FeedInvestigationDetailFieldsResponse fields: 2 - name: s12.incidents.feed.v1.FeedInvestigationFieldsResponse fields: 2 - name: s12.incidents.feed.v1.FeedInvestigationRelationshipsResponse fields: 2 - name: s12.incidents.feed.v1.FeedInvestigationsResponse fields: 2 - name: s12.incidents.v1.AddMediaOperation fields: 1 - name: s12.incidents.v1.Case fields: 40 description: Case represents an OSHA case record. - name: s12.incidents.v1.Category fields: 5 - name: s12.incidents.v1.CategoryDeletedDetails fields: 1 - name: s12.incidents.v1.CategoryDetailFieldAddedDetails fields: 1 - name: s12.incidents.v1.CategoryDetailFieldOrderChangedDetails fields: 3 - name: s12.incidents.v1.CategoryDetailFieldRemovedDetails fields: 1 - name: s12.incidents.v1.CategoryMetaData fields: 3 - name: s12.incidents.v1.DetailFieldContent fields: 8 - name: s12.incidents.v1.DetailFieldMetaData fields: 3 - name: s12.incidents.v1.Establishment fields: 16 description: Establishment represents an OSHA establishment record. - name: s12.incidents.v1.EstablishmentEmployees fields: 2 description: EstablishmentEmployees represents the average number of employees for an establishment for a specific year. - name: s12.incidents.v1.EstablishmentHoursWorked fields: 3 description: EstablishmentHoursWorked represents the hours worked by an establishment for a specific month and year. - name: s12.incidents.v1.FieldContent fields: 3 - name: s12.incidents.v1.FieldListItem fields: 6 - name: s12.incidents.v1.GetInvestigationResponse fields: 3 - name: s12.incidents.v1.Identifier fields: 3 - name: s12.incidents.v1.Investigation fields: 13 - name: s12.incidents.v1.InvestigationAccessItem fields: 2 - name: s12.incidents.v1.InvestigationAccessSetDetails fields: 3 - name: s12.incidents.v1.InvestigationAction fields: 5 - name: s12.incidents.v1.InvestigationActionLinkedDetails fields: 1 - name: s12.incidents.v1.InvestigationActionUnlinkedDetails fields: 1 - name: s12.incidents.v1.InvestigationCourse fields: 3 - name: s12.incidents.v1.InvestigationInspection fields: 5 - name: s12.incidents.v1.InvestigationInspectionLinkedDetails fields: 1 - name: s12.incidents.v1.InvestigationInspectionUnlinkedDetails fields: 1 - name: s12.incidents.v1.InvestigationIssue fields: 5 - name: s12.incidents.v1.InvestigationIssueLinkedDetails fields: 1 - name: s12.incidents.v1.InvestigationIssueUnlinkedDetails fields: 1 - name: s12.incidents.v1.InvestigationListItem fields: 16 - name: s12.incidents.v1.InvestigationLogEvent fields: 5 - name: s12.incidents.v1.InvestigationLogEventDetails fields: 17 - name: s12.incidents.v1.InvestigationMedia fields: 5 - name: s12.incidents.v1.InvestigationMediaAddedDetails fields: 1 - name: s12.incidents.v1.InvestigationMediaRemovedDetails fields: 1 - name: s12.incidents.v1.InvestigationOwnerChangedDetails fields: 2 - name: s12.incidents.v1.InvestigationStatusChangedDetails fields: 2 - name: s12.incidents.v1.InvestigationUserActions fields: 26 description: Updates against core fields - name: s12.incidents.v1.InvestigationUserFlags fields: 2 - name: s12.incidents.v1.LinkCounts fields: 3 - name: s12.incidents.v1.LinkOriginatesFrom fields: 5 - name: s12.incidents.v1.LocalisedString fields: 3 - name: s12.incidents.v1.LocalisedStringSet fields: 2 - name: s12.incidents.v1.SetDetailFieldOperation fields: 1 - name: s12.incidents.v1.SetFieldOperation fields: 1 - name: s12.incidents.v1.SettingsLogEvent fields: 5 - name: s12.incidents.v1.SettingsLogEventDetails fields: 24 - name: s12.incidents.v1.SettingsLogEventResource fields: 4 - name: s12.incidents.v1.StatusListItem fields: 7 - name: s12.incidents.v1.StatusMeta fields: 4 - name: s12.incidents.v1.TextFieldSpec fields: 1 - name: s12.incidents.v1.UpdatableStatus fields: 3 - name: s12.incidents.v1.UpdateInvestigationOperation fields: 16 - name: s12.incidents.v1.UpdateInvestigationRequest fields: 3 - name: s12.incidents.v1.UpsertableField fields: 3 - name: s12.incidents.v1.UserMeta fields: 7 - name: s12.inspections.pub.integration.v1.Actor fields: 8 - name: s12.inspections.pub.integration.v1.CellValue fields: 3 description: CellValue sets the value for a single cell in a table line. - name: s12.inspections.pub.integration.v1.GetInspectionAccessResponse fields: 3 - name: s12.inspections.pub.integration.v1.InspectionIdentity fields: 2 - name: s12.inspections.pub.integration.v1.InspectionItem fields: 16 description: Represents a single item within an inspection, corresponding to a template item. - name: s12.inspections.pub.integration.v1.InspectionItem.LocationItem fields: 2 description: Location value. - name: s12.inspections.pub.integration.v1.InspectionItem.LocationItem.Location fields: 11 description: Optional structured location, typically populated via a location picker. - name: s12.inspections.pub.integration.v1.InspectionItem.TableItem fields: 1 description: A table containing lines of items. - name: s12.inspections.pub.integration.v1.InspectionItem.TableItem.TableLine fields: 1 description: A single line within a table. - name: s12.inspections.pub.integration.v1.InspectionPermission fields: 2 - name: s12.inspections.pub.integration.v1.SetInspectionAccessResponse fields: 3 - name: s12.inspections.v1.AddressAnswer fields: 3 - name: s12.inspections.v1.AddressLocation fields: 11 - name: s12.inspections.v1.Answer fields: 22 - name: s12.inspections.v1.AssetAnswer fields: 2 - name: s12.inspections.v1.Attachments fields: 2 - name: s12.inspections.v1.CalculatedItem fields: 4 - name: s12.inspections.v1.CalculationAnswer fields: 2 - name: s12.inspections.v1.CheckboxAnswer fields: 2 - name: s12.inspections.v1.CompanyAnswer fields: 3 - name: s12.inspections.v1.DateTimeAnswer fields: 2 - name: s12.inspections.v1.DrawingAnswer fields: 2 - name: s12.inspections.v1.DynamicField fields: 1 description: DynamicField contains flat list of answers with one of answer type is being - name: s12.inspections.v1.DynamicFieldAnswerSet fields: 2 - name: s12.inspections.v1.GetInspectionsResponse.InspectionsListItem fields: 23 - name: s12.inspections.v1.GetInspectionsResponse.InspectionsListItem.Location fields: 2 - name: s12.inspections.v1.Inspection fields: 19 - name: s12.inspections.v1.InspectionDetails fields: 3 - name: s12.inspections.v1.InspectionDetails.InspectionItem fields: 32 - name: s12.inspections.v1.InspectionDetails.InspectionItem.AddressItem fields: 2 - name: s12.inspections.v1.InspectionDetails.InspectionItem.Attachments fields: 2 - name: s12.inspections.v1.InspectionDetails.InspectionItem.DrawingItem fields: 1 - name: s12.inspections.v1.InspectionDetails.InspectionItem.ListItems fields: 2 - name: s12.inspections.v1.InspectionDetails.InspectionItem.Media fields: 4 - name: s12.inspections.v1.InspectionDetails.InspectionItem.MediaItem fields: 1 - name: s12.inspections.v1.InspectionDetails.InspectionItem.PageItem fields: 1 - name: s12.inspections.v1.InspectionDetails.InspectionItem.PageItem.Approval fields: 5 - name: s12.inspections.v1.InspectionDetails.InspectionItem.QuestionItem fields: 2 - name: s12.inspections.v1.InspectionDetails.InspectionItem.SignatureItem fields: 3 - name: s12.inspections.v1.InspectionDetails.Metadata fields: 12 - name: s12.inspections.v1.InspectionDetails.User fields: 2 - name: s12.inspections.v1.ListAnswer fields: 4 - name: s12.inspections.v1.Media fields: 3 - name: s12.inspections.v1.MediaAnswer fields: 2 - name: s12.inspections.v1.QuestionAnswer fields: 4 - name: s12.inspections.v1.SignatureAnswer fields: 4 - name: s12.inspections.v1.SliderAnswer fields: 2 - name: s12.inspections.v1.StartInspectionTrigger fields: 2 - name: s12.inspections.v1.SwitchAnswer fields: 1 - name: s12.inspections.v1.TableData fields: 1 - name: s12.inspections.v1.TableData.Line fields: 2 - name: s12.inspections.v1.TableData.Line.Cell fields: 10 - name: s12.inspections.v1.TemperatureAnswer fields: 3 - name: s12.inspections.v1.TextAnswer fields: 2 - name: s12.integrations.app.v1.ApplicationTypeExternalWebExperience fields: 2 - name: s12.integrations.app.v1.ListApplicationsResponse fields: 2 - name: s12.integrations.app.v1.ListInstallationsResponse fields: 2 - name: s12.integrations.app.v1.RegisterApplicationTypeExternalWebExperience fields: 1 description: Object that describes an external iframe with a list of allowed hosts - name: s12.loneworker.v1.GetJobEventsResponse.JobEvent fields: 6 description: An event that occurred during a job. At most one set of event details is present, and event types that carry no further detail, such as a check-in, have none at all. - name: s12.loneworker.v1.GetJobsResponse.Job fields: 14 description: The message representing an active job. - name: s12.loneworker.v1.GetJobsResponse.Location fields: 3 description: The message representing a location and time when it was recorded. - name: s12.loneworker.v1.TimedLocation fields: 3 description: The message representing a location and time when it was recorded. - name: s12.media.v1.Download fields: 2 - name: s12.media.v1.SignedURLResponse fields: 4 - name: s12.media.v1.Upload fields: 1 - name: s12.media.v1.Upload.MultipartUpload fields: 2 - name: s12.permissions.v1.ListPermissionSetsRequest fields: 6 description: The request for ListPermissionSets. - name: s12.permissions.v1.PermissionSet fields: 6 description: PermissionSet represents a permission set. - name: s12.permissions.v1.PermissionSetWithUsers fields: 3 - name: s12.permissions.v1.Permissions fields: 58 description: Permissions represents a set of permissions. Individual permissions can be omitted to leave them unchanged. - name: s12.reports.v1.Filter fields: 21 - name: s12.reports.v1.MediaLayout fields: 2 - name: s12.reports.v1.Preference fields: 25 - name: s12.reports.v1.StartInspectionExportRequest fields: 7 - name: s12.reports.v1.StartInspectionExportRequest.ExportData fields: 7 description: Export data contains all export variant for a single inspection - name: s12.schedules.v1.ScheduleItem fields: 22 description: ScheduleItem represents a the rule for a reoccuring schedule event - name: s12.schedules.v1.ScheduleItem.Document fields: 3 description: Document represents the document in a schedule - name: s12.schedules.v1.ScheduleItem.Entity fields: 3 description: Entity represent the entity in a schedule, either creator or assignee - name: s12.schedules.v1.ScheduleItem.NextOccurrence fields: 2 description: NextOccurrence is the next time the schedule item will occur for assignees - name: s12.schedules.v1.ScheduleItem.Reminder fields: 2 description: Reminder represents a reminder for a schedule item - name: s12.schedules.v1.ScheduleItem.StartTime fields: 2 description: StartTime represents the start time of a schedule item - name: s12.schedules.v1.UpdateScheduleItem fields: 20 description: The parameters for creating or updating a schedule item - name: s12.scheduling.feed.v1.FeedScheduleAssigneesResponse fields: 2 description: The response for `FeedScheduleAssignees` V2 - name: s12.scheduling.feed.v1.FeedScheduleOccurrencesResponse fields: 2 description: The response for `FeedScheduleOccurrences` V2 - name: s12.scheduling.feed.v1.FeedSchedulesResponse fields: 3 description: The response for `FeedSchedules` V2 - name: s12.scheduling.v1.AccessGrant fields: 2 description: AccessGrant is a single discrete-access grant on a schedule. - name: s12.scheduling.v1.AssetScheduleTarget fields: 5 description: AssetScheduleTarget is an asset a schedule applies to. - name: s12.scheduling.v1.Assets fields: 1 description: Assets specifies a list of assets. - name: s12.scheduling.v1.AssignmentGroup fields: 2 description: A group associated with a schedule. - name: s12.scheduling.v1.CreateNewScheduleRequest fields: 6 description: CreateNewSchedule creates a schedule that generates recurring work items (e.g., inspections). - name: s12.scheduling.v1.GetScheduleResponse fields: 13 description: Response message for GetSchedule. - name: s12.scheduling.v1.Grantee fields: 2 description: Grantee is the typed identifier of an entity holding an access grant. - name: s12.scheduling.v1.LateSubmissionRule fields: 2 description: The conditions under which users can submit work late for each occurrence. - name: s12.scheduling.v1.ScheduleAssignmentRuleInfo fields: 4 description: Who is assigned to complete the work at each occurrence. - name: s12.scheduling.v1.ScheduleGroupAssignmentInfo fields: 1 description: Assignment to all members of one or more groups. - name: s12.scheduling.v1.ScheduleRecurrence fields: 4 description: ScheduleRecurrence defines when and how often the schedule repeats. - name: s12.scheduling.v1.ScheduleRecurrenceInfo fields: 4 description: The recurrence configuration for a schedule. - name: s12.scheduling.v1.ScheduleSiteMemberInGroupAssignmentInfo fields: 1 description: Assignment to users who belong to both the target site and specified groups. - name: s12.scheduling.v1.ScheduleUserAssignmentInfo fields: 1 description: Assignment to specific users. - name: s12.scheduling.v1.ScheduleWorkTypeInfo fields: 1 description: The type of work to be done for the schedule. - name: s12.scheduling.v1.SchedulingService.PauseScheduleBody fields: 2 - name: s12.scheduling.v1.SchedulingService.ResumeScheduleBody fields: 2 - name: s12.scheduling.v1.Sites fields: 1 description: Sites specifies a list of sites. - name: s12.scheduling.v1.UpdateAssets fields: 2 description: UpdateAssets modifies the list of assets the schedule applies across. - name: s12.scheduling.v1.User fields: 2 description: User represents a user identified by its id. - name: s12.search.v1.StructureSearchParams fields: 5 description: Inputs to SearchStructures. - name: s12.search.v1.StructureSearchParams.Filters fields: 4 description: Filters narrow which structures are returned. - name: s12.search.v1.StructureSearchParams.Filters.FieldValueFilter fields: 2 description: A single field plus the values it may match. Values within one - name: s12.search.v1.StructureSearchResult fields: 13 description: A single structure that matched the search query. - name: s12.sensors.v1.IngestSensorReadingsRequest fields: 2 description: The parameters for `IngestSensorReadingsRequest` - name: s12.sensors.v1.LatestSensorReading fields: 9 description: LatestSensorReading represents the latest sensor reading. - name: s12.sensors.v1.SensorId fields: 2 description: SensorId represent a source name/source ID pairing that uniquely - name: s12.structures.membership.v1.AddUsersToRoleResponse fields: 2 description: 'Response message for adding users to a role. Supports partial success: the' - name: s12.structures.membership.v1.AddUsersToStructureResponse fields: 2 description: Response message containing the created structure memberships. - name: s12.structures.membership.v1.RoleUserAssignments fields: 4 description: Details and structure assignments for a user assigned to a role. - name: s12.structures.membership.v1.RoleUserEntry fields: 2 description: A single user entry in a role user listing. - name: s12.structures.membership.v1.StructureMembership fields: 6 description: StructureMembership represents a user's membership within a structure, including their assigned role. - name: s12.structures.membership.v1.StructureMembershipDetails fields: 3 description: StructureMembershipDetails is a structure membership resolved with the user - name: s12.structures.membership.v1.UserDetails fields: 7 - name: s12.structures.roles.v1.Role fields: 9 - name: s12.structures.types.v1.FieldValueData fields: 0 description: FieldValueData contains the typed value stored for a field, without field metadata such as - name: s12.structures.types.v1.StructureFieldValue fields: 6 description: StructureFieldValue is one fully-populated field on a structure, pairing the - name: s12.structures.v1.Field fields: 9 description: A reusable attribute definition owned by the organization, such as "Region" or "Opening date". A field is defined once and then mapped to the structure types it applies to; a structure holds one value - name: s12.structures.v1.FieldValueInput fields: 2 description: FieldValueInput is the input message for setting a field value. - name: s12.structures.v1.SearchStructuresRequest fields: 2 description: Request for SearchStructures. Organization is taken from the caller's auth. - name: s12.structures.v1.Structure fields: 17 - name: s12.tasks.feed.v1.FeedActionFieldsResponse fields: 2 description: Response for FeedActionFields. - name: s12.tasks.v1.Action fields: 3 - name: s12.tasks.v1.ActionLabel fields: 2 description: ActionLabel is the label that's selected for an action. - name: s12.tasks.v1.ActionSharedLink fields: 1 - name: s12.tasks.v1.Answer fields: 4 description: Answer contains information about the answer to a custom question. - name: s12.tasks.v1.AnswerText fields: 1 description: A type of answer for a custom question containing text data. - name: s12.tasks.v1.Category fields: 12 description: A category is used to classify an issue. - name: s12.tasks.v1.CreateActionRequest fields: 18 - name: s12.tasks.v1.CreateActionScheduleRequest fields: 12 - name: s12.tasks.v1.CreateIncidentRequest fields: 14 - name: s12.tasks.v1.GetIncidentsRequest.Filter fields: 16 description: Filters represents a filters object which contains the filters available - name: s12.tasks.v1.GetIncidentsRequest.Filter.Duration fields: 2 - name: s12.tasks.v1.GetIncidentsRequest.Filter.Search fields: 1 description: Will return issues where the title and/or description contain the search - name: s12.tasks.v1.Group fields: 2 - name: s12.tasks.v1.Incident fields: 10 description: An Incident represents the details of an issue. - name: s12.tasks.v1.Item fields: 6 - name: s12.tasks.v1.MultipleChoiceOption fields: 2 description: MultipleChoiceOption represents a possible answer for a multiple choice question. - name: s12.tasks.v1.MultipleChoiceOptions fields: 1 description: MultipleChoiceOptions is an explicit message for a set of MultipleChoiceOption's to use in a oneof field below. - name: s12.tasks.v1.Question fields: 5 description: Question represents the question structure for a custom question. - name: s12.tasks.v1.QuestionAndAnswers fields: 3 description: QuestionAndAnswers represents the list of answers associated with a single - name: s12.tasks.v1.QuestionAnswer fields: 3 description: QuestionAnswer contains data about a question configured for this issue's - name: s12.tasks.v1.QuestionAnswers fields: 2 - name: s12.tasks.v1.SubmitIncidentRequest fields: 19 - name: s12.tasks.v1.SubmitIncidentRequest.QuestionAnswer fields: 3 description: QuestionAnswer contains data about a question configured for this issue's - name: s12.tasks.v1.Task fields: 25 - name: s12.tasks.v1.Task.ActionContext fields: 10 - name: s12.tasks.v1.Task.AddressAnswer fields: 2 - name: s12.tasks.v1.Task.AddressLocation fields: 11 description: The location of the task. - name: s12.tasks.v1.Task.AssetMaintenancePlanContext fields: 2 - name: s12.tasks.v1.Task.Attachments fields: 2 - name: s12.tasks.v1.Task.Collaborator fields: 7 description: A collaborator is somebody who is involved with the task. - name: s12.tasks.v1.Task.DrawingAnswer fields: 1 - name: s12.tasks.v1.Task.ExternalUser fields: 2 description: The external user that is assigned to a task. - name: s12.tasks.v1.Task.IncidentContext fields: 9 - name: s12.tasks.v1.Task.Inspection fields: 2 - name: s12.tasks.v1.Task.InspectionContext fields: 22 - name: s12.tasks.v1.Task.ListAnswer fields: 1 - name: s12.tasks.v1.Task.ListResponse fields: 2 - name: s12.tasks.v1.Task.MediaAnswer fields: 1 - name: s12.tasks.v1.Task.NumberComparison fields: 1 description: Used to compare values against a single number. - name: s12.tasks.v1.Task.Reference fields: 9 - name: s12.tasks.v1.Task.SignatureAnswer fields: 3 - name: s12.tasks.v1.Task.Site fields: 4 description: The folder (site) data of this task. - name: s12.tasks.v1.Task.Status fields: 4 - name: s12.tasks.v1.Task.TemperatureAnswer fields: 6 - name: s12.tasks.v1.Task.User fields: 3 description: The user associated to the task. They could be a creator or assignee. - name: s12.tasks.v1.TaskCustomFieldAndValue fields: 2 description: TaskCustomFieldAndValue is a composite message containing the Field and FieldValue type from the typefield service - name: s12.tasks.v1.TaskCustomType fields: 3 description: An action type together with usage statistics. - name: s12.tasks.v1.TaskFilter fields: 20 - name: s12.tasks.v1.TaskFilter.Collaborator fields: 2 description: 'Operator: Should only be FILTER_OPERATOR_IN.' - name: s12.tasks.v1.TaskFilter.Duration fields: 2 description: time duration filter. - name: s12.tasks.v1.TaskFilter.Search fields: 1 description: text search filter. - name: s12.tasks.v1.TimelineItem fields: 30 description: TimelineItem contains information about each item in the timeline. - name: s12.tasks.v1.TimelineItem.IncidentCreatedMessageData fields: 1 description: Data about when an issue was created. - name: s12.tasks.v1.TimelineItem.TaskAssigneeAddedMessageData fields: 1 description: Data about when an assignee was added to the task. - name: s12.tasks.v1.TimelineItem.TaskAssigneeUpdatedMessageData fields: 1 description: Data about when an assignee was updated. - name: s12.tasks.v1.TimelineItem.TaskCategoryUpdatedMessageData fields: 2 description: Data about when an issue's category was updated. - name: s12.tasks.v1.TimelineItem.TaskCreatedMessageData fields: 1 description: Data about when an action was created. - name: s12.tasks.v1.TimelineItem.TaskImageUploadedMessageData fields: 1 description: Data about when an image was added to a task. @deprecated - name: s12.tasks.v1.TimelineItem.TaskNotificationSentMessageData fields: 7 description: Data about when a notification is sent about a task. - name: s12.tasks.v1.TimelineItem.TaskSiteUpdatedMessageData fields: 2 description: Data about when the folder (site) of this task was updated. - name: s12.tasks.v1.Type fields: 3 description: The type associated with an action. - name: s12.templates.pub.integration.v1.TemplateDefinition fields: 7 - name: s12.templates.pub.integration.v1.TemplateDefinition.ResponseSets fields: 2 description: ResponseSets contains all response sets associated with this template. - name: s12.templates.pub.integration.v1.TemplateDefinition.TemplateItem fields: 27 - name: s12.templates.pub.integration.v1.TemplateOperation fields: 4 description: TemplateOperation is one mutation against a template draft. Exactly one field - name: s12.templates.v1.AssetTemplateItem fields: 3 - name: s12.templates.v1.CalculationData fields: 2 - name: s12.templates.v1.CompanyTemplateItem fields: 2 - name: s12.templates.v1.DrawingTemplateItem fields: 2 - name: s12.templates.v1.InstructionTemplateItem fields: 4 - name: s12.templates.v1.ListTemplateItem fields: 5 - name: s12.templates.v1.LogicfieldTemplateItem fields: 30 - name: s12.templates.v1.LogicfieldTemplateItem.Response fields: 1 description: ListField/QuestionField holds the responses to compare against. - name: s12.templates.v1.LogicfieldTemplateItem.SkipTo fields: 2 - name: s12.templates.v1.NumberComparison fields: 1 description: Used to compare values against a single number. - name: s12.templates.v1.QuestionTemplateItem fields: 4 - name: s12.templates.v1.RangeComparison fields: 2 description: Used to compare values within a range. - name: s12.templates.v1.TemperatureTemplateItem fields: 5 - name: s12.templates.v1.Template fields: 30 - name: s12.templates.v1.TemplateItem fields: 29 - name: s12.templates.v1.TemplateItemOptions fields: 2 - name: s12.templates.v1.TemplatePermission fields: 2 - name: s12.templates.v1.TemplatePermissions fields: 5 - name: s12.templates.v1.TextSingleTemplateItem fields: 4 - name: s12.thepub.v1.FeedMetadata fields: 2 description: The metadata returned on a feed - name: s12.thepub.v1.GetGRSResponse fields: 3 description: A global response set response used for getting a GRS - name: s12.thepub.v1.Inspection fields: 9 - name: s12.thepub.v1.Inspection.AuditData fields: 10 - name: s12.thepub.v1.Inspection.Item fields: 6 - name: s12.thepub.v1.Inspection.Item.Responses fields: 12 - name: s12.thepub.v1.Inspection.TemplateData fields: 3 - name: s12.thepub.v1.UpdateInspectionItem fields: 3 - name: s12.thepub.v1.UpdateInspectionItem.Responses fields: 8 - name: s12.typefield.v1.CreateFieldAttributes fields: 6 - name: s12.typefield.v1.Field fields: 9 description: Describes the values of a field. - name: s12.typefield.v1.FieldOption fields: 3 - name: s12.typefield.v1.FieldValue fields: 8 description: Individual field value definition. - name: s12.typefield.v1.ListTypesCriteria fields: 6 - name: s12.typefield.v1.Type fields: 6 description: Describes the values of a type. - name: s12.userdocuments.v1.DocumentVersion fields: 9 description: A version is the point-in-time snapshot of a credential. A credential can have multiple versions that are added and edited over time. - name: s12.userdocuments.v1.DocumentVersionAttributes fields: 3 description: Intrinsic attributes associated with a credential version. - name: s12.userdocuments.v1.DocumentVersionFilter fields: 8 description: DocumentVersionFilter is used to filter document versions based on various criteria. - name: s12.userdocuments.v1.DocumentVersionMetadata fields: 9 description: Metadata associated with a credential version. - name: s12.userdocuments.v1.User fields: 3 description: Information about a SafetyCulture user. - name: s12.userdocuments.v1.UserDocumentsSettings fields: 2 description: UserDocumentsSettings represents the Credential settings for your organization. - name: s12.users.userattribute.v1.Attribute fields: 4 - name: s12.users.userfield.v1.Field fields: 9 - name: s12.users.userfield.v1.FieldSettings fields: 3 - name: s12.users.v1.CreateOrUpdateRequestUser fields: 1 - name: s12.users.v1.CreateOrUpdateResponseUser fields: 3 - name: s12.users.v1.CreateOrUpdateResponseUser.ErrorDetails fields: 8 - name: s12.users.v1.CreateOrUpdateSeatUsage fields: 2 - name: s12.users.v1.CreateOrUpdateUser fields: 16 - name: s12.users.v1.CreateOrUpdateUser.Attribute fields: 2 - name: s12.users.v1.CreateOrUpdateUser.Memberships fields: 2 - name: s12.users.v1.CreateOrUpdateUser.Reference fields: 4 description: A reference to another resource, such as a group, site, or permission set. - name: s12.users.v1.CreateOrUpdateUsersJob fields: 14 - name: s12.users.v1.EmailSettings fields: 1 - name: s12.webhooks.v1.WebhookResponse fields: 8 relationships: - from: s12.announcements.v1.HeadsUp to: s12.common.Media type: has_one via: video - from: s12.announcements.v1.HeadsUp to: s12.common.Media type: has_many via: images - from: s12.announcements.v1.HeadsUp to: s12.common.Media type: has_one via: author_profile_image - from: s12.announcements.v1.HeadsUp to: s12.announcements.v1.HeadsUpMedia type: has_many via: media - from: s12.announcements.v1.HeadsUpMedia to: s12.common.Media type: has_one via: media - from: s12.announcements.v1.HeadsUpReactionSummary to: s12.announcements.v1.HeadsUpReactionUser type: has_many via: users - from: s12.announcements.v1.HeadsUpReactionUser to: s12.common.Media type: has_one via: user_profile_picture - from: s12.common.GetMessagesResponse to: s12.common.Message type: has_many via: messages - from: s12.common.Message to: s12.common.MessageContent type: has_many via: message - from: s12.common.Message to: s12.common.Media type: has_one via: author_profile_image - from: s12.announcements.v1.HeadsUpManageListItem to: s12.common.Media type: has_one via: author_profile_image - from: s12.announcements.v1.HeadsUpUserListItem to: s12.common.Media type: has_one via: profile_picture - from: s12.assets.v1.Asset to: s12.assets.v1.AssetType type: has_one via: type - from: s12.assets.v1.Asset to: s12.assets.v1.AssetField type: has_many via: fields - from: s12.assets.v1.Asset to: s12.common.Media type: has_many via: media - from: s12.assets.v1.Asset to: s12.assets.v1.AssetSite type: has_one via: site - from: s12.assets.v1.Asset to: s12.common.Media type: has_one via: profile_image - from: s12.assets.v1.AssetField to: s12.common.Money type: has_one via: money_value - from: s12.assets.v1.ListAssetsRequest to: s12.assets.v1.AssetFilter type: has_many via: asset_filters - from: s12.assets.v1.ListAssetsRequest to: s12.assets.v1.AssetsOrderBy type: has_one via: order_by - from: s12.assets.v1.CreateAssetRequest to: s12.assets.v1.AssetField type: has_many via: fields - from: s12.assets.v1.BulkCreateAssetsRequest.Asset to: s12.assets.v1.AssetField type: has_many via: fields - from: s12.assets.v1.BulkCreateAssetsResponse to: s12.assets.v1.BulkCreateAssetsResponse.FailedAsset type: has_many via: failed_assets - from: s12.assets.v1.BulkCreateAssetsResponse.FailedAsset to: s12.common.Status type: has_one via: status - from: s12.common.Status to: google.protobuf.Any type: has_many via: details - from: s12.assets.v1.LookupAssetsByFieldRequest to: s12.assets.v1.AssetFilter type: has_many via: asset_filters - from: s12.assets.v1.LookupAssetsByFieldRequest to: s12.assets.v1.AssetsOrderBy type: has_one via: order_by - from: s12.assets.v1.BulkUpdateAssetsResponse to: s12.assets.v1.BulkUpdateAssetsResponse.FailedAsset type: has_many via: failed_assets - from: s12.assets.v1.BulkUpdateAssetsResponse.FailedAsset to: s12.common.Status type: has_one via: status - from: s12.assets.v1.AssetLocation to: s12.assets.v1.Location type: has_one via: location - from: s12.assets.v1.Location to: s12.common.GeoPosition type: has_one via: geo_position - from: s12.assets.v1.Field to: s12.typefield.v1.FieldOption type: has_many via: select_options - from: s12.assets.v1.TypeField to: s12.typefield.v1.FieldOption type: has_many via: select_options - from: s12.assets.v1.StatusGroup to: s12.assets.v1.StatusOption type: has_many via: options - from: s12.assets.v1.StatusGroup to: s12.assets.v1.Type type: has_many via: types - from: s12.assets.v1.GetProgramResponse to: s12.assets.v1.MaintenanceProgram type: has_one via: program - from: s12.assets.v1.GetProgramResponse to: s12.assets.v1.MaintenancePlan type: has_many via: plans - from: s12.assets.v1.MaintenanceInterval to: s12.assets.v1.MaintenanceMetricValue type: has_one via: interval - from: s12.assets.v1.MaintenanceInterval to: s12.assets.v1.MaintenanceMetricValue type: has_one via: due_soon - from: s12.assets.v1.MaintenancePlan to: s12.assets.v1.MaintenanceInterval type: has_many via: intervals - from: s12.assets.v1.MaintenancePlan to: s12.assets.v1.MaintenanceTrigger type: has_many via: triggers - from: s12.assets.v1.MaintenanceTrigger to: s12.assets.v1.MaintenanceTriggerNotification type: has_one via: notification - from: s12.assets.v1.MaintenanceTriggerNotification to: s12.assets.v1.MaintenanceMetricValue type: has_one via: before - from: s12.assets.v1.MaintenanceProgramDetails to: s12.assets.v1.MaintenanceProgram type: has_one via: program - from: s12.assets.v1.AssetFilterOptions to: s12.assets.v1.AssetFilter type: has_many via: asset_filters - from: s12.assets.v1.MaintenanceService.CreatePlanBody to: s12.assets.v1.MaintenanceInterval type: has_many via: intervals - from: s12.assets.v1.MaintenanceService.CreatePlanBody to: s12.assets.v1.MaintenanceTriggerNotification type: has_many via: trigger_notifications - from: s12.assets.v1.AssetSummary to: s12.assets.v1.AssetType type: has_one via: type - from: s12.assets.v1.AssetSummary to: s12.assets.v1.AssetSite type: has_one via: site - from: s12.assets.v1.AssetSummary to: s12.common.Media type: has_one via: profile_image - from: s12.assets.v1.AssetsMaintenanceDetails to: s12.assets.v1.AssetSummary type: has_one via: asset_summary - from: s12.assets.v1.AssetsMaintenanceDetails to: s12.assets.v1.MaintenancePlanSummary type: has_one via: plan_summary - from: s12.assets.v1.AssetsMaintenanceDetails to: s12.assets.v1.MaintenanceMetricValue type: has_one via: last_service - from: s12.assets.v1.AssetsMaintenanceDetails to: s12.assets.v1.MaintenanceMetricValue type: has_one via: next_service - from: s12.assets.v1.AssetsMaintenanceDetails to: s12.assets.v1.MaintenanceMetricValue type: has_one via: current_reading - from: s12.assets.v1.AssetsMaintenanceDetails to: s12.assets.v1.MaintenanceMetricValue type: has_one via: due_in_value - from: s12.assets.v1.ListAssetsMaintenanceDetailsRequest to: s12.assets.v1.AssetMaintenanceDetailsFilter type: has_one via: filter - from: s12.assets.v1.MaintenancePlanSummary to: s12.assets.v1.MaintenanceInterval type: has_one via: interval - from: s12.assets.v1.AssetService to: s12.assets.v1.MaintenanceMetricValue type: has_one via: service_value - from: s12.scheduling.feed.v1.FeedScheduleAssigneesResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.scheduling.feed.v1.FeedScheduleOccurrencesResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.scheduling.feed.v1.FeedSchedulesResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.incidents.feed.v1.FeedInvestigationDetailFieldsResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.incidents.feed.v1.FeedInvestigationFieldsResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.incidents.feed.v1.FeedInvestigationRelationshipsResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.incidents.feed.v1.FeedInvestigationsResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.contractors.feed.v1.FeedContractorCompaniesResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.contractors.feed.v1.FeedContractorCompanyDocumentsResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.contractors.feed.v1.FeedContractorCompanyUserMembershipsResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.assets.feed.v1.FeedAssetsMaintenanceResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.assets.feed.v1.FeedMaintenancePlansResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.assets.feed.v1.FeedMaintenanceProgramsResponse to: s12.common.v1.FeedMetadataSimple type: has_one via: metadata - from: s12.thepub.v1.Inspection to: s12.thepub.v1.Inspection.AuditData type: has_one via: audit_data - from: s12.thepub.v1.Inspection to: s12.thepub.v1.Inspection.TemplateData type: has_one via: template_data - from: s12.thepub.v1.Inspection to: s12.thepub.v1.Inspection.Item type: has_many via: header_items - from: s12.thepub.v1.Inspection to: s12.thepub.v1.Inspection.Item type: has_many via: items - from: s12.thepub.v1.Inspection.Item to: s12.thepub.v1.Inspection.Item.Responses type: has_one via: responses - from: s12.thepub.v1.UpdateInspectionItem to: s12.thepub.v1.UpdateInspectionItem.Responses type: has_one via: responses - from: s12.reports.v1.Preference to: s12.reports.v1.Filter type: has_one via: filter - from: s12.reports.v1.Preference to: s12.common.Media type: has_one via: logo - from: s12.reports.v1.Preference to: s12.reports.v1.MediaLayout type: has_one via: media_layout - from: s12.reports.v1.Preference to: s12.common.Media type: has_one via: cover_page - from: s12.reports.v1.StartInspectionExportRequest to: s12.reports.v1.StartInspectionExportRequest.ExportData type: has_many via: export_data - from: s12.reports.v1.StartInspectionExportRequest.ExportData to: s12.reports.v1.Filter type: has_one via: filters - from: s12.reports.v1.StartInspectionExportRequest.ExportData to: s12.reports.v1.MediaLayout type: has_one via: media_layout - from: s12.reports.v1.StartInspectionExportRequest.ExportData to: s12.reports.v1.Preference type: has_one via: preference_override - from: s12.inspections.v1.AddressAnswer to: s12.inspections.v1.AddressLocation type: has_one via: location - from: s12.inspections.v1.AddressAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.AddressLocation to: s12.common.GeoPosition type: has_one via: geo_position - from: s12.inspections.v1.Answer to: s12.inspections.v1.TextAnswer type: has_one via: text_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.DateTimeAnswer type: has_one via: datetime_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.AddressAnswer type: has_one via: address_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.CheckboxAnswer type: has_one via: checkbox_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.DynamicField type: has_one via: dynamicfield_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.ListAnswer type: has_one via: list_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.QuestionAnswer type: has_one via: question_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.MediaAnswer type: has_one via: media_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.DrawingAnswer type: has_one via: drawing_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.SignatureAnswer type: has_one via: signature_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.TemperatureAnswer type: has_one via: temperature_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.SliderAnswer type: has_one via: slider_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.SwitchAnswer type: has_one via: switch_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.AssetAnswer type: has_one via: asset_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.CalculationAnswer type: has_one via: calculation_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.CompanyAnswer type: has_one via: company_answer - from: s12.inspections.v1.Answer to: s12.inspections.v1.TableData type: has_one via: table_answer - from: s12.inspections.v1.Answer to: s12.common.GeoPosition type: has_one via: location - from: s12.inspections.v1.AssetAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.Attachments to: s12.inspections.v1.Media type: has_many via: media - from: s12.inspections.v1.CalculationAnswer to: s12.inspections.v1.CalculatedItem type: has_one via: answer - from: s12.inspections.v1.CalculationAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.CheckboxAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.CompanyAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.DateTimeAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.DrawingAnswer to: s12.common.Media type: has_one via: media - from: s12.inspections.v1.DrawingAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.DynamicField to: s12.inspections.v1.DynamicFieldAnswerSet type: has_many via: items - from: s12.inspections.v1.ListAnswer to: s12.inspections.v1.Media type: has_many via: media - from: s12.inspections.v1.ListAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.Media to: s12.common.Media type: has_one via: media - from: s12.inspections.v1.MediaAnswer to: s12.inspections.v1.Media type: has_many via: media - from: s12.inspections.v1.MediaAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.QuestionAnswer to: s12.inspections.v1.Media type: has_many via: media - from: s12.inspections.v1.QuestionAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.SignatureAnswer to: s12.common.Media type: has_one via: media - from: s12.inspections.v1.SignatureAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.SliderAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.TableData to: s12.inspections.v1.TableData.Line type: has_many via: lines - from: s12.inspections.v1.TableData.Line to: s12.inspections.v1.TableData.Line.Cell type: has_many via: cells - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.TextAnswer type: has_one via: text_answer - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.CalculationAnswer type: has_one via: calculation_answer - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.TemperatureAnswer type: has_one via: temperature_answer - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.CheckboxAnswer type: has_one via: checkbox_answer - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.DateTimeAnswer type: has_one via: datetime_answer - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.SwitchAnswer type: has_one via: switch_answer - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.MediaAnswer type: has_one via: media_answer - from: s12.inspections.v1.TableData.Line.Cell to: s12.inspections.v1.ListAnswer type: has_one via: list_answer - from: s12.inspections.v1.TemperatureAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.TextAnswer to: s12.inspections.v1.Attachments type: has_one via: attachments - from: s12.inspections.v1.Inspection to: s12.common.IdValueEntry type: has_one via: modified_by - from: s12.inspections.v1.Inspection to: s12.common.Media type: has_many via: media - from: s12.inspections.v1.Inspection to: s12.inspections.v1.StartInspectionTrigger type: has_one via: start_trigger - from: s12.inspections.v1.InspectionDetails to: s12.inspections.v1.InspectionDetails.Metadata type: has_one via: metadata - from: s12.inspections.v1.InspectionDetails to: s12.inspections.v1.InspectionDetails.InspectionItem type: has_many via: items - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.AddressItem type: has_one via: address_item - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.ListItems type: has_one via: list_items - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.QuestionItem type: has_one via: question_item - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.MediaItem type: has_one via: media_item - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.DrawingItem type: has_one via: drawing_item - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.SignatureItem type: has_one via: signature_item - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.PageItem type: has_one via: page_item - from: s12.inspections.v1.InspectionDetails.InspectionItem to: s12.inspections.v1.InspectionDetails.InspectionItem.Attachments type: has_one via: attachments - from: s12.inspections.v1.InspectionDetails.InspectionItem.AddressItem to: s12.inspections.v1.AddressLocation type: has_one via: location - from: s12.inspections.v1.InspectionDetails.InspectionItem.Attachments to: s12.inspections.v1.InspectionDetails.InspectionItem.Media type: has_many via: media - from: s12.inspections.v1.InspectionDetails.InspectionItem.DrawingItem to: s12.inspections.v1.InspectionDetails.InspectionItem.Media type: has_one via: image - from: s12.inspections.v1.InspectionDetails.InspectionItem.ListItems to: s12.common.IdValueEntry type: has_many via: responses - from: s12.inspections.v1.InspectionDetails.InspectionItem.MediaItem to: s12.inspections.v1.InspectionDetails.InspectionItem.Media type: has_many via: media - from: s12.inspections.v1.InspectionDetails.InspectionItem.PageItem to: s12.inspections.v1.InspectionDetails.InspectionItem.PageItem.Approval type: has_one via: approval - from: s12.inspections.v1.InspectionDetails.InspectionItem.PageItem.Approval to: s12.inspections.v1.InspectionDetails.User type: has_one via: requested_by - from: s12.inspections.v1.InspectionDetails.InspectionItem.PageItem.Approval to: s12.inspections.v1.InspectionDetails.User type: has_one via: approved_by - from: s12.inspections.v1.InspectionDetails.InspectionItem.QuestionItem to: s12.common.IdValueEntry type: has_many via: responses - from: s12.inspections.v1.InspectionDetails.InspectionItem.SignatureItem to: s12.inspections.v1.InspectionDetails.InspectionItem.Media type: has_one via: image - from: s12.inspections.v1.InspectionDetails.Metadata to: s12.inspections.v1.InspectionDetails.User type: has_one via: last_modified_by - from: s12.inspections.v1.InspectionDetails.Metadata to: s12.inspections.v1.InspectionDetails.User type: has_one via: owner - from: s12.inspections.pub.integration.v1.GetInspectionAccessResponse to: s12.inspections.pub.integration.v1.InspectionIdentity type: has_one via: inspection_identity - from: s12.inspections.pub.integration.v1.GetInspectionAccessResponse to: s12.inspections.pub.integration.v1.InspectionPermission type: has_many via: permissions - from: s12.inspections.pub.integration.v1.InspectionPermission to: s12.inspections.pub.integration.v1.Actor type: has_one via: actor - from: s12.inspections.pub.integration.v1.SetInspectionAccessResponse to: s12.inspections.pub.integration.v1.InspectionIdentity type: has_one via: inspection_identity - from: s12.inspections.pub.integration.v1.SetInspectionAccessResponse to: s12.inspections.pub.integration.v1.InspectionPermission type: has_many via: permissions - from: s12.inspections.pub.integration.v1.InspectionItem to: s12.inspections.pub.integration.v1.InspectionItem.LocationItem type: has_one via: location_item - from: s12.inspections.pub.integration.v1.InspectionItem to: s12.inspections.pub.integration.v1.InspectionItem.TableItem type: has_one via: table_item - from: s12.inspections.pub.integration.v1.InspectionItem.LocationItem to: s12.inspections.pub.integration.v1.InspectionItem.LocationItem.Location type: has_one via: location - from: s12.inspections.pub.integration.v1.InspectionItem.LocationItem.Location to: s12.common.GeoPosition type: has_one via: geo_position - from: s12.inspections.pub.integration.v1.InspectionItem.TableItem to: s12.inspections.pub.integration.v1.InspectionItem.TableItem.TableLine type: has_many via: lines - from: s12.inspections.pub.integration.v1.InspectionItem.TableItem.TableLine to: s12.inspections.pub.integration.v1.InspectionItem type: has_many via: items - from: s12.contractors.v1.ContractorCompanyAttributes to: s12.contractors.v1.CompanyContactDetails type: has_one via: contact_details - from: s12.contractors.v1.ContractorCompanyAttributes to: s12.common.Media type: has_one via: image - from: s12.common.UserDocument to: s12.common.Media type: has_one via: profile_image - from: s12.contractors.v1.ContractorCompany to: s12.contractors.v1.ContractorCompanyAttributes type: has_one via: attributes - from: s12.contractors.v1.ContractorCompany to: s12.contractors.v1.ContractorCompanyMetadata type: has_one via: metadata - from: s12.contractors.v1.ContractorCompany to: s12.typefield.v1.Type type: has_one via: company_type - from: s12.contractors.v1.ContractorCompanyMetadata to: s12.contractors.v1.User type: has_one via: created_by_user - from: s12.contractors.v1.ContractorCompanyMetadata to: s12.contractors.v1.User type: has_one via: last_modified_by_user - from: s12.contractors.v1.ContractorCompanyMetadata to: s12.common.UserDocument type: has_one via: created_by_user_doc - from: s12.contractors.v1.ContractorCompanyMetadata to: s12.common.UserDocument type: has_one via: last_modified_by_user_doc - from: s12.contractors.v1.CompanyUserMetadata to: s12.common.UserDocument type: has_one via: user_doc - from: s12.contractors.v1.CompanyDocument to: s12.contractors.v1.CompanyDocumentType type: has_one via: company_document_type - from: s12.contractors.v1.CompanyDocument to: google.type.Date type: has_one via: issue_date - from: s12.contractors.v1.CompanyDocument to: google.type.Date type: has_one via: expiration_date - from: s12.contractors.v1.CompanyDocument to: s12.common.UserDocument type: has_one via: created_by_user - from: s12.contractors.v1.CompanyDocument to: s12.common.Media type: has_one via: media - from: s12.contractors.v1.CompanyDocument to: s12.common.UserDocument type: has_one via: modified_by_user - from: s12.contractors.v1.CompanyDocument to: s12.contractors.v1.AiDocumentComplianceAudit type: has_one via: ai_compliance_audit - from: s12.contractors.v1.CompanyDocumentType to: s12.contractors.v1.CompanyDocumentTypeForm type: has_one via: form - from: s12.contractors.v1.CompanyDocumentTypeForm to: s12.common.Media type: has_one via: media - from: s12.contractors.v1.ListCompanyDocumentsRequest to: s12.contractors.v1.CompanyDocumentsFilter type: has_one via: filter - from: s12.contractors.v1.ListCompanyTypesMetricsResponse.CompanyTypeWithMetrics to: s12.typefield.v1.Type type: has_one via: type - from: s12.userdocuments.v1.DocumentVersion to: s12.userdocuments.v1.DocumentVersionAttributes type: has_one via: attributes - from: s12.userdocuments.v1.DocumentVersion to: s12.userdocuments.v1.DocumentVersionMetadata type: has_one via: metadata - from: s12.userdocuments.v1.DocumentVersion to: s12.userdocuments.v1.User type: has_one via: subject_user - from: s12.userdocuments.v1.DocumentVersionAttributes to: s12.common.Media type: has_many via: media - from: s12.userdocuments.v1.DocumentVersionAttributes to: google.type.Date type: has_one via: expiry_period_start_date - from: s12.userdocuments.v1.DocumentVersionAttributes to: google.type.Date type: has_one via: expiry_period_end_date - from: s12.userdocuments.v1.DocumentVersionMetadata to: s12.userdocuments.v1.User type: has_one via: created_by_user - from: s12.userdocuments.v1.DocumentVersionMetadata to: s12.userdocuments.v1.User type: has_one via: last_modified_by_user - from: s12.directory.v1.GetFolderResponse to: s12.directory.v1.Folder type: has_one via: folder - from: s12.directory.v1.GetFolderResponse to: s12.directory.v1.Folder type: has_many via: ancestors - from: s12.directory.v1.FolderWithAncestors to: s12.directory.v1.Folder type: has_one via: folder - from: s12.directory.v1.FolderWithAncestors to: s12.directory.v1.Folder type: has_many via: ancestors - from: s12.directory.v1.GetFoldersResponse to: s12.directory.v1.Folder type: has_many via: folders - from: s12.directory.v1.GetFoldersResponse to: s12.directory.v1.FolderWithAncestors type: has_many via: folders_with_ancestors - from: s12.directory.v1.FolderWithMembersCount to: s12.directory.v1.Folder type: has_one via: folder - from: s12.documents.v1.DocumentsPublicService.UpdateFileBody to: google.type.Date type: has_one via: valid_to - from: s12.documents.v1.File to: s12.documents.v1.ParentFolder type: has_many via: ancestors - from: s12.documents.v1.File to: s12.documents.v1.User type: has_many via: users - from: s12.documents.v1.File to: s12.documents.v1.Group type: has_many via: groups - from: s12.documents.v1.File to: google.type.Date type: has_one via: valid_from - from: s12.documents.v1.File to: google.type.Date type: has_one via: valid_to - from: s12.documents.v1.Folder to: s12.documents.v1.ParentFolder type: has_many via: ancestors - from: s12.documents.v1.Folder to: s12.documents.v1.User type: has_many via: users - from: s12.documents.v1.Folder to: s12.documents.v1.Group type: has_many via: groups - from: s12.documents.v1.SearchItemsResponse to: s12.documents.v1.Folder type: has_many via: folders - from: s12.documents.v1.SearchItemsResponse to: s12.documents.v1.File type: has_many via: files - from: s12.documents.v1.GetFolderChildrenResponse to: s12.documents.v1.Folder type: has_many via: folders - from: s12.documents.v1.GetFolderChildrenResponse to: s12.documents.v1.File type: has_many via: files - from: s12.incidents.v1.Investigation to: s12.incidents.v1.StatusMeta type: has_one via: status - from: s12.incidents.v1.Investigation to: s12.incidents.v1.Identifier type: has_one via: identifier - from: s12.incidents.v1.Investigation to: s12.incidents.v1.UserMeta type: has_one via: creator - from: s12.incidents.v1.Investigation to: s12.incidents.v1.UserMeta type: has_one via: owner - from: s12.incidents.v1.Investigation to: s12.incidents.v1.FieldContent type: has_many via: fields - from: s12.incidents.v1.Investigation to: s12.incidents.v1.LinkCounts type: has_one via: link_counts - from: s12.incidents.v1.Investigation to: s12.incidents.v1.CategoryMetaData type: has_one via: category - from: s12.incidents.v1.Investigation to: s12.incidents.v1.DetailFieldContent type: has_many via: detail_fields - from: s12.incidents.v1.LocalisedString to: s12.incidents.v1.LocalisedStringSet type: has_one via: alternatives - from: s12.incidents.v1.StatusMeta to: s12.incidents.v1.LocalisedString type: has_one via: title_localised - from: s12.incidents.v1.UserMeta to: s12.common.Media type: has_one via: profile_image - from: s12.incidents.v1.InvestigationAccessItem to: s12.incidents.v1.UserMeta type: has_one via: user - from: s12.incidents.v1.GetInvestigationResponse to: s12.incidents.v1.Investigation type: has_one via: investigation - from: s12.incidents.v1.GetInvestigationResponse to: s12.incidents.v1.InvestigationUserActions type: has_one via: actions - from: s12.incidents.v1.GetInvestigationResponse to: s12.incidents.v1.InvestigationUserFlags type: has_one via: flags - from: s12.incidents.v1.FieldListItem to: s12.incidents.v1.TextFieldSpec type: has_one via: text - from: s12.incidents.v1.InvestigationAction to: s12.tasks.v1.Action type: has_one via: action - from: s12.incidents.v1.InvestigationAction to: s12.incidents.v1.LinkOriginatesFrom type: has_one via: originates_from - from: s12.incidents.v1.InvestigationInspection to: s12.inspections.v1.GetInspectionsResponse.InspectionsListItem type: has_one via: inspection - from: s12.incidents.v1.InvestigationInspection to: s12.incidents.v1.LinkOriginatesFrom type: has_one via: originates_from - from: s12.incidents.v1.InvestigationIssue to: s12.tasks.v1.Incident type: has_one via: issue - from: s12.incidents.v1.InvestigationIssue to: s12.incidents.v1.LinkOriginatesFrom type: has_one via: originates_from - from: s12.incidents.v1.InvestigationMedia to: s12.incidents.v1.UserMeta type: has_one via: uploaded_by - from: s12.incidents.v1.InvestigationMedia to: s12.incidents.v1.LinkOriginatesFrom type: has_one via: originates_from - from: s12.incidents.v1.InvestigationMedia to: s12.common.Media type: has_one via: file - from: s12.incidents.v1.LinkOriginatesFrom to: s12.incidents.v1.InvestigationAction type: has_one via: action - from: s12.incidents.v1.LinkOriginatesFrom to: s12.incidents.v1.InvestigationIssue type: has_one via: issue - from: s12.incidents.v1.LinkOriginatesFrom to: s12.incidents.v1.InvestigationInspection type: has_one via: inspection - from: s12.incidents.v1.LinkOriginatesFrom to: s12.incidents.v1.InvestigationMedia type: has_one via: media - from: s12.inspections.v1.GetInspectionsResponse.InspectionsListItem to: s12.common.Media type: has_one via: metadata_image - from: s12.inspections.v1.GetInspectionsResponse.InspectionsListItem to: s12.inspections.v1.GetInspectionsResponse.InspectionsListItem.Location type: has_one via: location - from: s12.inspections.v1.GetInspectionsResponse.InspectionsListItem.Location to: s12.common.GeoPosition type: has_one via: location - from: s12.tasks.v1.Action to: s12.tasks.v1.Task type: has_one via: task - from: s12.tasks.v1.Action to: s12.tasks.v1.TaskCustomFieldAndValue type: has_many via: custom_field_and_values - from: s12.tasks.v1.Action to: s12.tasks.v1.Type type: has_one via: type - from: s12.tasks.v1.Answer to: s12.tasks.v1.AnswerText type: has_one via: answer_text - from: s12.tasks.v1.Answer to: s12.tasks.v1.MultipleChoiceOption type: has_one via: answer_multiple_choice_option - from: s12.tasks.v1.Category to: s12.tasks.v1.Item type: has_many via: items - from: s12.tasks.v1.Incident to: s12.tasks.v1.Task type: has_one via: task - from: s12.tasks.v1.Incident to: s12.tasks.v1.Category type: has_one via: category - from: s12.tasks.v1.Incident to: s12.common.Media type: has_many via: media - from: s12.tasks.v1.Incident to: s12.tasks.v1.Task.AddressLocation type: has_one via: location - from: s12.tasks.v1.Incident to: s12.tasks.v1.Item type: has_many via: items - from: s12.tasks.v1.Incident to: s12.tasks.v1.QuestionAnswers type: has_many via: question_answers - from: s12.tasks.v1.Incident to: s12.common.v1.AiMarking type: has_one via: ai_marking - from: s12.tasks.v1.Item to: s12.tasks.v1.Question type: has_one via: question_data - from: s12.tasks.v1.MultipleChoiceOptions to: s12.tasks.v1.MultipleChoiceOption type: has_many via: options - from: s12.tasks.v1.Question to: s12.tasks.v1.MultipleChoiceOptions type: has_one via: multiple_choice_options - from: s12.tasks.v1.QuestionAnswers to: s12.tasks.v1.Answer type: has_many via: answer_set - from: s12.tasks.v1.Task to: s12.tasks.v1.Task.User type: has_one via: creator - from: s12.tasks.v1.Task to: s12.tasks.v1.Task.Collaborator type: has_many via: collaborators - from: s12.tasks.v1.Task to: s12.tasks.v1.Task.Inspection type: has_one via: inspection - from: s12.tasks.v1.Task to: s12.tasks.v1.Task.Site type: has_one via: site - from: s12.tasks.v1.Task to: s12.tasks.v1.Task.Reference type: has_many via: references - from: s12.tasks.v1.Task to: s12.tasks.v1.Task.Status type: has_one via: status - from: s12.tasks.v1.Task to: s12.tasks.v1.ActionLabel type: has_many via: action_label - from: s12.tasks.v1.Task.ActionContext to: s12.tasks.v1.Task.User type: has_one via: creator - from: s12.tasks.v1.Task.ActionContext to: s12.tasks.v1.Task.Status type: has_one via: status - from: s12.tasks.v1.Task.ActionContext to: s12.tasks.v1.Task.Collaborator type: has_many via: collaborators - from: s12.tasks.v1.Task.ActionContext to: s12.tasks.v1.Task.Inspection type: has_one via: inspection - from: s12.tasks.v1.Task.ActionContext to: s12.tasks.v1.Type type: has_one via: type - from: s12.tasks.v1.Task.AddressAnswer to: s12.tasks.v1.Task.AddressLocation type: has_one via: location - from: s12.tasks.v1.Task.AddressLocation to: s12.common.GeoPosition type: has_one via: geo_position - from: s12.tasks.v1.Task.Attachments to: s12.common.Media type: has_many via: media - from: s12.tasks.v1.Task.Collaborator to: s12.tasks.v1.Task.User type: has_one via: user - from: s12.tasks.v1.Task.Collaborator to: s12.tasks.v1.Task.ExternalUser type: has_one via: external_user - from: s12.tasks.v1.Task.DrawingAnswer to: s12.common.Media type: has_one via: media - from: s12.tasks.v1.Task.IncidentContext to: s12.tasks.v1.Task.User type: has_one via: creator - from: s12.tasks.v1.Task.IncidentContext to: s12.tasks.v1.Task.Collaborator type: has_many via: collaborators - from: s12.tasks.v1.Task.InspectionContext to: s12.tasks.v1.Task.Attachments type: has_one via: inspection_item_attachments - from: s12.tasks.v1.Task.InspectionContext to: s12.tasks.v1.Task.ListAnswer type: has_one via: list_answer - from: s12.tasks.v1.Task.InspectionContext to: s12.tasks.v1.Task.MediaAnswer type: has_one via: media_answer - from: s12.tasks.v1.Task.InspectionContext to: s12.tasks.v1.Task.SignatureAnswer type: has_one via: signature_answer - from: s12.tasks.v1.Task.InspectionContext to: s12.tasks.v1.Task.DrawingAnswer type: has_one via: drawing_answer - from: s12.tasks.v1.Task.InspectionContext to: s12.tasks.v1.Task.AddressAnswer type: has_one via: address_answer - from: s12.tasks.v1.Task.InspectionContext to: s12.tasks.v1.Task.TemperatureAnswer type: has_one via: temperature_answer - from: s12.tasks.v1.Task.ListAnswer to: s12.tasks.v1.Task.ListResponse type: has_many via: responses - from: s12.tasks.v1.Task.MediaAnswer to: s12.common.Media type: has_many via: media - from: s12.tasks.v1.Task.Reference to: s12.tasks.v1.Task.InspectionContext type: has_one via: inspection_context - from: s12.tasks.v1.Task.Reference to: s12.tasks.v1.Task.IncidentContext type: has_one via: incident_context - from: s12.tasks.v1.Task.Reference to: s12.tasks.v1.Task.ActionContext type: has_one via: action_context - from: s12.tasks.v1.Task.Reference to: s12.tasks.v1.Task.AssetMaintenancePlanContext type: has_one via: asset_maintenance_plan_context - from: s12.tasks.v1.Task.SignatureAnswer to: s12.common.Media type: has_one via: media - from: s12.tasks.v1.Task.TemperatureAnswer to: s12.tasks.v1.Task.NumberComparison type: has_one via: above - from: s12.tasks.v1.Task.TemperatureAnswer to: s12.tasks.v1.Task.NumberComparison type: has_one via: below - from: s12.tasks.v1.TaskCustomFieldAndValue to: s12.typefield.v1.Field type: has_one via: field - from: s12.tasks.v1.TaskCustomFieldAndValue to: s12.typefield.v1.FieldValue type: has_one via: field_value - from: s12.typefield.v1.Field to: s12.typefield.v1.FieldOption type: has_many via: select_options - from: s12.typefield.v1.FieldValue to: s12.common.Money type: has_one via: money_value - from: s12.incidents.v1.InvestigationAccessSetDetails to: s12.incidents.v1.UserMeta type: has_one via: user - from: s12.incidents.v1.InvestigationActionLinkedDetails to: s12.incidents.v1.InvestigationAction type: has_one via: action - from: s12.incidents.v1.InvestigationActionUnlinkedDetails to: s12.incidents.v1.InvestigationAction type: has_one via: action - from: s12.incidents.v1.InvestigationInspectionLinkedDetails to: s12.incidents.v1.InvestigationInspection type: has_one via: inspection - from: s12.incidents.v1.InvestigationInspectionUnlinkedDetails to: s12.incidents.v1.InvestigationInspection type: has_one via: inspection - from: s12.incidents.v1.InvestigationIssueLinkedDetails to: s12.incidents.v1.InvestigationIssue type: has_one via: issue - from: s12.incidents.v1.InvestigationIssueUnlinkedDetails to: s12.incidents.v1.InvestigationIssue type: has_one via: issue - from: s12.incidents.v1.InvestigationLogEvent to: s12.incidents.v1.UserMeta type: has_one via: performed_by - from: s12.incidents.v1.InvestigationLogEvent to: s12.incidents.v1.InvestigationLogEventDetails type: has_one via: details - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationOwnerChangedDetails type: has_one via: owner_changed - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationStatusChangedDetails type: has_one via: status_changed - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationActionLinkedDetails type: has_one via: action_linked - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationActionUnlinkedDetails type: has_one via: action_unlinked - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationIssueLinkedDetails type: has_one via: issue_linked - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationIssueUnlinkedDetails type: has_one via: issue_unlinked - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationInspectionLinkedDetails type: has_one via: inspection_linked - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationInspectionUnlinkedDetails type: has_one via: inspection_unlinked - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationMediaAddedDetails type: has_one via: media_added - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationMediaRemovedDetails type: has_one via: media_removed - from: s12.incidents.v1.InvestigationLogEventDetails to: s12.incidents.v1.InvestigationAccessSetDetails type: has_one via: access_set - from: s12.incidents.v1.InvestigationMediaAddedDetails to: s12.incidents.v1.InvestigationMedia type: has_one via: media - from: s12.incidents.v1.InvestigationMediaRemovedDetails to: s12.incidents.v1.InvestigationMedia type: has_one via: media - from: s12.incidents.v1.InvestigationOwnerChangedDetails to: s12.incidents.v1.UserMeta type: has_one via: from - from: s12.incidents.v1.InvestigationOwnerChangedDetails to: s12.incidents.v1.UserMeta type: has_one via: to - from: s12.incidents.v1.InvestigationStatusChangedDetails to: s12.incidents.v1.StatusMeta type: has_one via: from - from: s12.incidents.v1.InvestigationStatusChangedDetails to: s12.incidents.v1.StatusMeta type: has_one via: to - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.StatusMeta type: has_one via: status - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.Identifier type: has_one via: identifier - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.UserMeta type: has_one via: creator - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.UserMeta type: has_one via: owner - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.LinkCounts type: has_one via: link_counts - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.InvestigationUserActions type: has_one via: user_actions - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.UserMeta type: has_one via: modified_by - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.InvestigationUserFlags type: has_one via: user_flags - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.CategoryMetaData type: has_one via: category - from: s12.incidents.v1.InvestigationListItem to: s12.incidents.v1.DetailFieldContent type: has_many via: detail_fields - from: s12.incidents.v1.StatusListItem to: s12.incidents.v1.LocalisedString type: has_one via: title_localised - from: s12.incidents.v1.UpsertableField to: s12.incidents.v1.TextFieldSpec type: has_one via: text - from: s12.incidents.v1.SetDetailFieldOperation to: s12.incidents.v1.DetailFieldContent type: has_one via: content - from: s12.incidents.v1.SetFieldOperation to: s12.incidents.v1.FieldContent type: has_one via: content - from: s12.incidents.v1.UpdateInvestigationOperation to: s12.incidents.v1.AddMediaOperation type: has_one via: add_media - from: s12.incidents.v1.UpdateInvestigationOperation to: s12.incidents.v1.SetFieldOperation type: has_one via: set_field - from: s12.incidents.v1.UpdateInvestigationOperation to: s12.incidents.v1.SetDetailFieldOperation type: has_one via: set_detail_field - from: s12.incidents.v1.UpdateInvestigationRequest to: s12.incidents.v1.UpdateInvestigationOperation type: has_one via: operation - from: s12.incidents.v1.CategoryDeletedDetails to: s12.incidents.v1.CategoryMetaData type: has_one via: deleted - from: s12.incidents.v1.CategoryDetailFieldAddedDetails to: s12.incidents.v1.DetailFieldMetaData type: has_one via: field - from: s12.incidents.v1.CategoryDetailFieldOrderChangedDetails to: s12.incidents.v1.DetailFieldMetaData type: has_one via: field - from: s12.incidents.v1.CategoryDetailFieldRemovedDetails to: s12.incidents.v1.DetailFieldMetaData type: has_one via: field - from: s12.incidents.v1.SettingsLogEvent to: s12.incidents.v1.SettingsLogEventResource type: has_one via: resource - from: s12.incidents.v1.SettingsLogEvent to: s12.incidents.v1.UserMeta type: has_one via: performed_by - from: s12.incidents.v1.SettingsLogEvent to: s12.incidents.v1.SettingsLogEventDetails type: has_one via: details - from: s12.incidents.v1.SettingsLogEventDetails to: s12.incidents.v1.CategoryDeletedDetails type: has_one via: category_deleted - from: s12.incidents.v1.SettingsLogEventDetails to: s12.incidents.v1.CategoryDetailFieldAddedDetails type: has_one via: category_detail_field_added - from: s12.incidents.v1.SettingsLogEventDetails to: s12.incidents.v1.CategoryDetailFieldRemovedDetails type: has_one via: category_detail_field_removed - from: s12.incidents.v1.SettingsLogEventDetails to: s12.incidents.v1.CategoryDetailFieldOrderChangedDetails type: has_one via: category_detail_field_order_changed - from: s12.incidents.v1.SettingsLogEventResource to: s12.incidents.v1.StatusMeta type: has_one via: status - from: s12.incidents.v1.SettingsLogEventResource to: s12.incidents.v1.CategoryMetaData type: has_one via: category - from: s12.incidents.v1.SettingsLogEventResource to: s12.incidents.v1.DetailFieldMetaData type: has_one via: detail_field - from: s12.incidents.v1.UpdatableStatus to: s12.incidents.v1.LocalisedStringSet type: has_one via: title_localised - from: s12.typefield.v1.CreateFieldAttributes to: s12.typefield.v1.FieldOption type: has_many via: select_options - from: s12.incidents.v1.Case to: s12.incidents.v1.UserMeta type: has_one via: created_by - from: s12.incidents.v1.Case to: s12.incidents.v1.UserMeta type: has_one via: modified_by - from: s12.incidents.v1.Establishment to: s12.incidents.v1.UserMeta type: has_one via: created_by - from: s12.incidents.v1.Establishment to: s12.incidents.v1.UserMeta type: has_one via: modified_by - from: s12.integrations.app.v1.ListApplicationsResponse to: s12.common.v1.PaginationMetadata type: has_one via: metadata - from: s12.integrations.app.v1.ListInstallationsResponse to: s12.common.v1.PaginationMetadata type: has_one via: metadata - from: s12.loneworker.v1.GetJobsResponse.Job to: s12.loneworker.v1.GetJobsResponse.Location type: has_one via: start_location - from: s12.loneworker.v1.GetJobsResponse.Job to: s12.loneworker.v1.GetJobsResponse.Location type: has_one via: last_known_location - from: s12.loneworker.v1.GetJobEventsResponse.JobEvent to: s12.loneworker.v1.TimedLocation type: has_one via: location - from: s12.loneworker.v1.TimedLocation to: s12.common.GeoPosition type: has_one via: position - from: s12.media.v1.SignedURLResponse to: s12.media.v1.Upload type: has_one via: upload_info - from: s12.media.v1.SignedURLResponse to: s12.media.v1.Download type: has_one via: download_info - from: s12.media.v1.Upload to: s12.media.v1.Upload.MultipartUpload type: has_one via: multipart_upload - from: s12.users.v1.CreateOrUpdateRequestUser to: s12.users.v1.CreateOrUpdateUser type: has_one via: user - from: s12.users.v1.CreateOrUpdateResponseUser to: s12.users.v1.CreateOrUpdateUser type: has_one via: user - from: s12.users.v1.CreateOrUpdateResponseUser to: s12.users.v1.CreateOrUpdateResponseUser.ErrorDetails type: has_many via: errors - from: s12.users.v1.CreateOrUpdateResponseUser.ErrorDetails to: s12.users.v1.CreateOrUpdateUser.Reference type: has_one via: sub_field_reference - from: s12.users.v1.CreateOrUpdateResponseUser.ErrorDetails to: s12.users.v1.CreateOrUpdateUser.Reference type: has_one via: value_reference - from: s12.users.v1.CreateOrUpdateUser to: s12.users.v1.CreateOrUpdateUser.Reference type: has_one via: permission_set - from: s12.users.v1.CreateOrUpdateUser to: s12.users.v1.CreateOrUpdateUser.Memberships type: has_one via: groups - from: s12.users.v1.CreateOrUpdateUser to: s12.users.v1.CreateOrUpdateUser.Memberships type: has_one via: sites - from: s12.users.v1.CreateOrUpdateUser to: s12.users.v1.CreateOrUpdateUser.Memberships type: has_one via: companies - from: s12.users.v1.CreateOrUpdateUser to: s12.users.v1.CreateOrUpdateUser.Attribute type: has_many via: attributes - from: s12.users.v1.CreateOrUpdateUser to: s12.users.v1.EmailSettings type: has_one via: email_settings - from: s12.users.v1.CreateOrUpdateUser to: s12.common.PasswordSettings type: has_one via: password_settings - from: s12.users.v1.CreateOrUpdateUser.Attribute to: s12.users.v1.CreateOrUpdateUser.Reference type: has_one via: reference - from: s12.users.v1.CreateOrUpdateUser.Memberships to: s12.users.v1.CreateOrUpdateUser.Reference type: has_many via: remove - from: s12.users.v1.CreateOrUpdateUser.Memberships to: s12.users.v1.CreateOrUpdateUser.Reference type: has_many via: add - from: s12.users.v1.CreateOrUpdateUsersJob to: s12.users.v1.CreateOrUpdateSeatUsage type: has_one via: seat_usage - from: s12.permissions.v1.PermissionSet to: s12.permissions.v1.Permissions type: has_one via: permissions - from: s12.permissions.v1.PermissionSet to: s12.permissions.v1.Permissions type: has_one via: permissions_denylist - from: s12.permissions.v1.PermissionSetWithUsers to: s12.permissions.v1.PermissionSet type: has_one via: permission_set - from: s12.users.userfield.v1.Field to: s12.users.userfield.v1.FieldSettings type: has_one via: settings - from: s12.users.userfield.v1.Field to: s12.typefield.v1.FieldOption type: has_many via: select_options - from: s12.schedules.v1.UpdateScheduleItem to: s12.schedules.v1.ScheduleItem.StartTime type: has_one via: start_time - from: s12.schedules.v1.UpdateScheduleItem to: s12.schedules.v1.ScheduleItem.Reminder type: has_many via: reminders - from: s12.schedules.v1.UpdateScheduleItem to: s12.schedules.v1.ScheduleItem.Entity type: has_many via: assignees - from: s12.schedules.v1.UpdateScheduleItem to: s12.schedules.v1.ScheduleItem.Document type: has_one via: document - from: s12.schedules.v1.UpdateScheduleItem to: s12.schedules.v1.ScheduleItem.Entity type: has_one via: creator - from: s12.schedules.v1.UpdateScheduleItem to: s12.schedules.v1.ScheduleItem.NextOccurrence type: has_one via: next_occurrence - from: s12.schedules.v1.ScheduleItem to: s12.schedules.v1.ScheduleItem.StartTime type: has_one via: start_time - from: s12.schedules.v1.ScheduleItem to: s12.schedules.v1.ScheduleItem.Reminder type: has_many via: reminders - from: s12.schedules.v1.ScheduleItem to: s12.schedules.v1.ScheduleItem.Entity type: has_many via: assignees - from: s12.schedules.v1.ScheduleItem to: s12.schedules.v1.ScheduleItem.Entity type: has_one via: creator - from: s12.schedules.v1.ScheduleItem to: s12.schedules.v1.ScheduleItem.Document type: has_one via: document - from: s12.schedules.v1.ScheduleItem to: s12.schedules.v1.ScheduleItem.NextOccurrence type: has_one via: next_occurrence - from: s12.scheduling.v1.CreateNewScheduleRequest to: s12.scheduling.v1.ScheduleRecurrence type: has_one via: recurrence - from: s12.scheduling.v1.ScheduleRecurrence to: s12.scheduling.v1.LateSubmissionRule type: has_one via: late_submission_rule - from: s12.scheduling.v1.GetScheduleResponse to: s12.scheduling.v1.ScheduleWorkTypeInfo type: has_one via: work_type - from: s12.scheduling.v1.GetScheduleResponse to: s12.scheduling.v1.ScheduleRecurrenceInfo type: has_one via: recurrence - from: s12.scheduling.v1.GetScheduleResponse to: s12.scheduling.v1.ScheduleAssignmentRuleInfo type: has_one via: assignment - from: s12.scheduling.v1.GetScheduleResponse to: s12.scheduling.v1.User type: has_one via: creator - from: s12.scheduling.v1.GetScheduleResponse to: s12.scheduling.v1.User type: has_one via: last_modified_by - from: s12.scheduling.v1.ScheduleAssignmentRuleInfo to: s12.scheduling.v1.ScheduleUserAssignmentInfo type: has_one via: users - from: s12.scheduling.v1.ScheduleAssignmentRuleInfo to: s12.scheduling.v1.ScheduleGroupAssignmentInfo type: has_one via: groups - from: s12.scheduling.v1.ScheduleAssignmentRuleInfo to: s12.scheduling.v1.ScheduleSiteMemberInGroupAssignmentInfo type: has_one via: site_members_in_group - from: s12.scheduling.v1.ScheduleGroupAssignmentInfo to: s12.scheduling.v1.AssignmentGroup type: has_many via: groups - from: s12.scheduling.v1.ScheduleRecurrenceInfo to: s12.scheduling.v1.LateSubmissionRule type: has_one via: late_submission_rule - from: s12.scheduling.v1.ScheduleSiteMemberInGroupAssignmentInfo to: s12.scheduling.v1.AssignmentGroup type: has_many via: groups - from: s12.scheduling.v1.ScheduleUserAssignmentInfo to: s12.scheduling.v1.User type: has_many via: users - from: s12.scheduling.v1.AccessGrant to: s12.scheduling.v1.Grantee type: has_one via: grantee - from: s12.scheduling.v1.Grantee to: s12.scheduling.v1.User type: has_one via: user - from: s12.scheduling.v1.SchedulingService.PauseScheduleBody to: s12.scheduling.v1.Sites type: has_one via: sites - from: s12.scheduling.v1.SchedulingService.PauseScheduleBody to: s12.scheduling.v1.Assets type: has_one via: assets - from: s12.scheduling.v1.SchedulingService.ResumeScheduleBody to: s12.scheduling.v1.Sites type: has_one via: sites - from: s12.scheduling.v1.SchedulingService.ResumeScheduleBody to: s12.scheduling.v1.Assets type: has_one via: assets - from: s12.scheduling.v1.UpdateAssets to: s12.scheduling.v1.Assets type: has_one via: add_assets - from: s12.scheduling.v1.UpdateAssets to: s12.scheduling.v1.Assets type: has_one via: remove_assets - from: s12.sensors.v1.IngestSensorReadingsRequest to: s12.sensors.v1.SensorId type: has_one via: id - from: s12.sensors.v1.LatestSensorReading to: s12.sensors.v1.SensorId type: has_one via: id - from: s12.search.v1.StructureSearchParams to: s12.search.v1.StructureSearchParams.Filters type: has_one via: filters - from: s12.search.v1.StructureSearchParams.Filters to: s12.search.v1.StructureSearchParams.Filters.FieldValueFilter type: has_many via: field_values - from: s12.search.v1.StructureSearchParams.Filters.FieldValueFilter to: s12.structures.types.v1.FieldValueData type: has_many via: values - from: s12.search.v1.StructureSearchResult to: s12.structures.types.v1.StructureFieldValue type: has_many via: fields - from: s12.structures.types.v1.StructureFieldValue to: s12.structures.types.v1.FieldValueData type: has_one via: value - from: s12.structures.v1.SearchStructuresRequest to: s12.search.v1.StructureSearchParams type: has_one via: params - from: s12.structures.membership.v1.AddUsersToStructureResponse to: s12.structures.membership.v1.StructureMembership type: has_many via: structure_memberships - from: s12.structures.membership.v1.StructureMembershipDetails to: s12.structures.membership.v1.StructureMembership type: has_one via: structure_membership - from: s12.structures.membership.v1.StructureMembershipDetails to: s12.structures.membership.v1.UserDetails type: has_one via: user_data - from: s12.structures.membership.v1.AddUsersToRoleResponse to: s12.structures.membership.v1.StructureMembership type: has_many via: structure_memberships - from: s12.structures.membership.v1.RoleUserAssignments to: s12.structures.membership.v1.UserDetails type: has_one via: user_data - from: s12.structures.membership.v1.RoleUserEntry to: s12.structures.membership.v1.RoleUserAssignments type: has_one via: assignments - from: s12.structures.v1.Field to: s12.typefield.v1.FieldOption type: has_many via: select_options - from: s12.tasks.v1.CreateActionRequest to: s12.tasks.v1.Task.Collaborator type: has_many via: collaborators - from: s12.tasks.v1.CreateActionRequest to: s12.tasks.v1.Task.Reference type: has_many via: references - from: s12.tasks.v1.CreateActionRequest to: s12.tasks.v1.Type type: has_one via: type - from: s12.tasks.v1.CreateActionRequest to: s12.typefield.v1.FieldValue type: has_many via: field_values - from: s12.tasks.v1.TaskFilter to: s12.tasks.v1.Task.Reference type: has_one via: reference - from: s12.tasks.v1.TaskFilter to: s12.tasks.v1.TaskFilter.Duration type: has_one via: created_at - from: s12.tasks.v1.TaskFilter to: s12.tasks.v1.TaskFilter.Duration type: has_one via: modified_at - from: s12.tasks.v1.TaskFilter to: s12.tasks.v1.TaskFilter.Collaborator type: has_one via: collaborators - from: s12.tasks.v1.TaskFilter to: s12.tasks.v1.TaskFilter.Duration type: has_one via: due_at - from: s12.tasks.v1.TaskFilter to: s12.tasks.v1.TaskFilter.Search type: has_one via: title - from: s12.tasks.v1.TaskFilter to: s12.tasks.v1.TaskFilter.Search type: has_one via: description - from: s12.tasks.v1.TaskFilter.Collaborator to: s12.tasks.v1.Task.Collaborator type: has_many via: value - from: s12.tasks.v1.CreateActionScheduleRequest to: s12.tasks.v1.Task.Collaborator type: has_many via: collaborators - from: s12.tasks.v1.CreateActionScheduleRequest to: s12.typefield.v1.FieldValue type: has_many via: field_values - from: s12.tasks.v1.CreateActionScheduleRequest to: s12.tasks.v1.Type type: has_one via: type - from: s12.tasks.v1.TaskCustomType to: s12.typefield.v1.Type type: has_one via: type - from: s12.tasks.v1.CreateIncidentRequest to: s12.tasks.v1.Task.Collaborator type: has_many via: collaborators - from: s12.tasks.v1.CreateIncidentRequest to: s12.tasks.v1.Task.AddressLocation type: has_one via: location - from: s12.tasks.v1.CreateIncidentRequest to: s12.tasks.v1.QuestionAnswer type: has_many via: question_answers - from: s12.tasks.v1.CreateIncidentRequest to: s12.tasks.v1.Item type: has_many via: items - from: s12.tasks.v1.QuestionAnswer to: s12.tasks.v1.AnswerText type: has_one via: answer_text - from: s12.tasks.v1.QuestionAnswer to: s12.tasks.v1.MultipleChoiceOption type: has_one via: answer_multiple_choice - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Search type: has_one via: title - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Search type: has_one via: description - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Duration type: has_one via: due_at - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Duration type: has_one via: created_at - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Duration type: has_one via: occurred_at - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Search type: has_one via: keyword - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Duration type: has_one via: modified_at - from: s12.tasks.v1.GetIncidentsRequest.Filter to: s12.tasks.v1.GetIncidentsRequest.Filter.Duration type: has_one via: completed_at - from: s12.tasks.v1.SubmitIncidentRequest to: s12.common.Media type: has_many via: media - from: s12.tasks.v1.SubmitIncidentRequest to: s12.tasks.v1.Task.AddressLocation type: has_one via: location - from: s12.tasks.v1.SubmitIncidentRequest to: s12.tasks.v1.SubmitIncidentRequest.QuestionAnswer type: has_many via: questions_and_answers - from: s12.tasks.v1.SubmitIncidentRequest to: s12.tasks.v1.Item type: has_many via: items - from: s12.tasks.v1.SubmitIncidentRequest to: s12.common.v1.AiMarking type: has_one via: ai_marking - from: s12.tasks.v1.SubmitIncidentRequest.QuestionAnswer to: s12.tasks.v1.AnswerText type: has_one via: answer_text - from: s12.tasks.v1.SubmitIncidentRequest.QuestionAnswer to: s12.tasks.v1.MultipleChoiceOption type: has_one via: answer_multiple_choice - from: s12.tasks.v1.QuestionAndAnswers to: s12.tasks.v1.Question type: has_one via: question - from: s12.tasks.v1.QuestionAndAnswers to: s12.tasks.v1.Answer type: has_many via: answer_set - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.Task.User type: has_one via: creator - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.TaskCreatedMessageData type: has_one via: task_created_data - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.TaskAssigneeAddedMessageData type: has_one via: task_assignee_added_data - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.TaskImageUploadedMessageData type: has_one via: task_image_uploaded_data - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.TaskSiteUpdatedMessageData type: has_one via: task_site_updated_data - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.TaskCategoryUpdatedMessageData type: has_one via: task_category_updated_data - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.IncidentCreatedMessageData type: has_one via: incident_created_data - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.TaskNotificationSentMessageData type: has_one via: task_notification_sent_data - from: s12.tasks.v1.TimelineItem to: s12.tasks.v1.TimelineItem.TaskAssigneeUpdatedMessageData type: has_one via: task_assignee_updated_data - from: s12.tasks.v1.TimelineItem.IncidentCreatedMessageData to: s12.tasks.v1.Incident type: has_one via: incident - from: s12.tasks.v1.TimelineItem.TaskAssigneeAddedMessageData to: s12.tasks.v1.Task.Collaborator type: has_many via: collaborators - from: s12.tasks.v1.TimelineItem.TaskAssigneeUpdatedMessageData to: s12.tasks.v1.Task.Collaborator type: has_many via: assignees - from: s12.tasks.v1.TimelineItem.TaskCategoryUpdatedMessageData to: s12.tasks.v1.Category type: has_one via: category - from: s12.tasks.v1.TimelineItem.TaskCreatedMessageData to: s12.tasks.v1.Task type: has_one via: task - from: s12.tasks.v1.TimelineItem.TaskImageUploadedMessageData to: s12.common.Media type: has_one via: media - from: s12.tasks.v1.TimelineItem.TaskNotificationSentMessageData to: s12.tasks.v1.Group type: has_many via: groups - from: s12.tasks.v1.TimelineItem.TaskNotificationSentMessageData to: s12.tasks.v1.Task.User type: has_many via: users - from: s12.tasks.v1.TimelineItem.TaskNotificationSentMessageData to: s12.tasks.v1.Task.ExternalUser type: has_many via: external_users - from: s12.tasks.v1.TimelineItem.TaskNotificationSentMessageData to: s12.tasks.v1.Group type: has_many via: site_groups - from: s12.tasks.v1.TimelineItem.TaskNotificationSentMessageData to: s12.tasks.v1.Task.Site type: has_one via: site - from: s12.tasks.v1.TimelineItem.TaskSiteUpdatedMessageData to: s12.tasks.v1.Task.Site type: has_one via: site - from: s12.tasks.v1.TimelineItem.TaskSiteUpdatedMessageData to: s12.tasks.v1.Task.Site type: has_many via: site_hierarchy - from: s12.templates.v1.AssetTemplateItem to: s12.templates.v1.TemplateItemOptions type: has_one via: options - from: s12.templates.v1.CompanyTemplateItem to: s12.templates.v1.TemplateItemOptions type: has_one via: options - from: s12.templates.v1.DrawingTemplateItem to: s12.templates.v1.TemplateItemOptions type: has_one via: options - from: s12.templates.v1.DrawingTemplateItem to: s12.common.Media type: has_one via: media - from: s12.templates.v1.InstructionTemplateItem to: s12.common.Media type: has_one via: media - from: s12.templates.v1.ListTemplateItem to: s12.templates.v1.TemplateItemOptions type: has_one via: options - from: s12.templates.v1.ListTemplateItem to: s12.templates.v1.CalculationData type: has_one via: calculation_data - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.LogicfieldTemplateItem.Response type: has_one via: response_is_selected - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.LogicfieldTemplateItem.Response type: has_one via: response_is_not_selected - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.LogicfieldTemplateItem.Response type: has_one via: response_is - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.LogicfieldTemplateItem.Response type: has_one via: response_is_not - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.LogicfieldTemplateItem.Response type: has_one via: response_is_in - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.LogicfieldTemplateItem.Response type: has_one via: response_is_not_in - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: response_is_less_than - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: response_is_less_than_or_equal_to - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: response_is_equal_to - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: response_is_not_equal_to - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: response_is_greater_than - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: response_is_greater_than_or_equal_to - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.RangeComparison type: has_one via: response_is_between - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.RangeComparison type: has_one via: response_is_not_between - from: s12.templates.v1.LogicfieldTemplateItem to: s12.templates.v1.LogicfieldTemplateItem.SkipTo type: has_one via: skip_to - from: s12.templates.v1.QuestionTemplateItem to: s12.templates.v1.TemplateItemOptions type: has_one via: options - from: s12.templates.v1.QuestionTemplateItem to: s12.templates.v1.CalculationData type: has_one via: calculation_data - from: s12.templates.v1.TemperatureTemplateItem to: s12.templates.v1.TemplateItemOptions type: has_one via: options - from: s12.templates.v1.TemperatureTemplateItem to: s12.templates.v1.RangeComparison type: has_one via: between - from: s12.templates.v1.TemperatureTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: above - from: s12.templates.v1.TemperatureTemplateItem to: s12.templates.v1.NumberComparison type: has_one via: below - from: s12.templates.v1.Template to: s12.templates.v1.TemplatePermissions type: has_one via: permissions - from: s12.templates.v1.Template to: s12.templates.v1.TemplateItem type: has_many via: items - from: s12.templates.v1.Template to: s12.common.Media type: has_many via: media - from: s12.templates.v1.Template to: s12.common.Media type: has_one via: metadata_image - from: s12.templates.v1.TemplateItem to: s12.templates.v1.ListTemplateItem type: has_one via: list - from: s12.templates.v1.TemplateItem to: s12.templates.v1.QuestionTemplateItem type: has_one via: question - from: s12.templates.v1.TemplateItem to: s12.templates.v1.LogicfieldTemplateItem type: has_one via: logicfield - from: s12.templates.v1.TemplateItem to: s12.templates.v1.TextSingleTemplateItem type: has_one via: textsingle - from: s12.templates.v1.TemplateItem to: s12.templates.v1.DrawingTemplateItem type: has_one via: drawing - from: s12.templates.v1.TemplateItem to: s12.templates.v1.TemperatureTemplateItem type: has_one via: temperature - from: s12.templates.v1.TemplateItem to: s12.templates.v1.InstructionTemplateItem type: has_one via: instruction - from: s12.templates.v1.TemplateItem to: s12.templates.v1.AssetTemplateItem type: has_one via: asset - from: s12.templates.v1.TemplateItem to: s12.templates.v1.CompanyTemplateItem type: has_one via: company - from: s12.templates.v1.TemplatePermissions to: s12.templates.v1.TemplatePermission type: has_many via: edit - from: s12.templates.v1.TemplatePermissions to: s12.templates.v1.TemplatePermission type: has_many via: view - from: s12.templates.v1.TemplatePermissions to: s12.templates.v1.TemplatePermission type: has_many via: owner - from: s12.templates.v1.TemplatePermissions to: s12.templates.v1.TemplatePermission type: has_many via: delete - from: s12.templates.v1.TemplatePermissions to: s12.templates.v1.TemplatePermission type: has_many via: context - from: s12.templates.v1.TextSingleTemplateItem to: s12.templates.v1.TemplateItemOptions type: has_one via: options - from: s12.templates.v1.TextSingleTemplateItem to: s12.templates.v1.CalculationData type: has_one via: calculation_data - from: s12.templates.pub.integration.v1.TemplateDefinition to: s12.templates.pub.integration.v1.TemplateDefinition.TemplateItem type: has_many via: items - from: s12.templates.pub.integration.v1.TemplateDefinition to: s12.templates.pub.integration.v1.TemplateDefinition.ResponseSets type: has_one via: response_sets