Mutation

open_in_new

Data update operations.

GraphQL Schema definition

  • type Mutation {
  • # Create a folder
  • #
  • # An Enterprise subscription is required to use this mutation
  • #
  • # @error not.found
  • # If the parent folder cannot be found, or user does not have permissions.
  • #
  • # Arguments
  • # folderDetails: Request Object used to create a folder
  • addFolder(folderDetails: FolderDetails!): Folder
  • # Update/patch a folder
  • #
  • # An Enterprise subscription is required to use this mutation
  • #
  • # @error not.found
  • # If the folder to be updated cannot be found for the current user
  • #
  • # Arguments
  • # id: ID for the folder to update
  • # patchInput: Request Object used to patch/update a folder
  • patchFolder(id: ID!, patchInput: FolderPatch!): Folder
  • # Delete a folder
  • #
  • # An Enterprise subscription is required to use this mutation
  • #
  • # @error not.found
  • # If the folder to be deleted cannot be found for the current user
  • #
  • # Arguments
  • # id: ID of the folder to delete
  • deleteFolder(id: ID!): Boolean
  • # Moves the listed folders and models to destination folder. If any of them fails
  • # none is moved.
  • # Returns the destination folder as the result.
  • # Limits to 25 elements (sub-folders and models) move.
  • #
  • # An Enterprise subscription is required to use this mutation
  • #
  • # @error not.found if any folder or model cannot be found
  • # @error validation.error if any validation fails
  • #
  • # Arguments
  • # modelIds: undefined
  • # folderIds: undefined
  • # destinationFolderId: undefined
  • moveToFolder(
  • modelIds: [ID!],
  • folderIds: [ID!],
  • destinationFolderId: ID!
  • ): Folder
  • # A patch operation on a model. The id is required to identify
  • # the model, all other attributes should only be specified if
  • # they are intended to be changed.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # id: The id of the model to retrieve.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # patch: A set of attributes to update on the model.
  • # Only the specified fields will be updated.
  • patchModel(id: ID!, field: ModelIdField, patch: ModelPatch!): Model
  • # Create a new view on a model
  • #
  • # Arguments
  • # id: undefined
  • # field: undefined
  • # name: A short name for the view.
  • # enabled: Whether this view should be shown or not.
  • # generateIds: When this is set to true all copied elements will
  • # get new unique identifiers.
  • # If this is set to true it will no longer be possible
  • # to link the elements back to the original element
  • # they were copied from.
  • #
  • # @default false
  • # copyDataFrom: If specified this will copy the associated data
  • # from the
  • # specified source view(s).
  • #
  • # If any of the source views don't exist or can't be viewed by the
  • # current user this operation will fail.
  • addView(
  • id: ID!,
  • field: ModelIdField,
  • name: String,
  • enabled: Boolean,
  • generateIds: Boolean,
  • copyDataFrom: [CopyInput!]
  • ): ModelView
  • # Copies data from one or more views into the current
  • # specified model/view.
  • #
  • # Arguments
  • # id: undefined
  • # field: undefined
  • # copyDataFrom: Data selections for what to copy to the patchView
  • # generateIds: When this is set to true all copied elements will
  • # get new unique identifiers.
  • # If this is set to true the element will effectively
  • # be a new unique copy and tracking deltas to this element
  • # across layers won't be possible.
  • #
  • # @default false
  • # onCollision: How to handle cases where an element of the
  • # same type, with the same ID already exists
  • # on the write layer of the destination.
  • # Note that if 'generateIds' is set to true then
  • # there will never be any collisions possible.
  • #
  • # @default duplicate
  • copyViewData(
  • id: ID!,
  • field: ModelIdField,
  • copyDataFrom: [CopyInput!],
  • generateIds: Boolean,
  • onCollision: CollisionResolution
  • ): ModelView
  • # Delete a view and its data, only possible for user views
  • # (type='matterport.user.view')
  • #
  • # Arguments
  • # id: model id
  • # field: specifies the field type of the model id
  • # viewId: id of the view to be deleted
  • deleteView(id: ID!, field: ModelIdField, viewId: ID!): Boolean
  • # Deletes a given model.
  • #
  • # Returns true if the model was deleted, otherwise null with
  • # a more specific error code should be returned.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # id: undefined
  • # field: undefined
  • deleteModel(id: ID!, field: ModelIdField): Boolean
  • # A patch operation on a floor. The IDs of the model and the floor are required to
  • # identify
  • # the floor, all other attributes should only be specified if
  • # they are intended to be changed.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model to retrieve.
  • # floorId: The id of the floor to patch.
  • # field: The id field to use for the model, defaults to the
  • # primary identifier (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # patch: A set of attributes to update on the model.
  • # Only the specified fields will be updated.
  • patchFloor(
  • modelId: ID!,
  • floorId: ID!,
  • field: ModelIdField,
  • patch: FloorPatch!
  • ): ModelFloor
  • # Updates all the address components. Any components that
  • # are unspecified will be removed from the Address, this is
  • # not a patch operation.
  • #
  • # A side effect of updating the address is the new address will
  • # be forward geolocated. The geolocation will be marked as pending
  • # until the geolocation process completes.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • # @error request.invalid: If the country code is not recognized or too many
  • # address lines are specified.
  • #
  • # Arguments
  • # id: undefined
  • # field: undefined
  • # streetAddressLines: The street address lines. Each line of the
  • # address
  • # should be separated as a new entry in the array.
  • # Currently only 2 address lines are supported.
  • # administrativeArea: The administrative area, exact definition
  • # varies based on location, but for US addresses this is the state.
  • # locality: The locality, exact definition varies based on
  • # location, but for US addresses this is the city.
  • # dependentLocality: The dependent locality, more specific than
  • # city, not often used in US addresses.
  • # postalCode: undefined
  • # sortingCode: undefined
  • # countryCode: Two character ISO-3166 country code.
  • # addressVisibility: The published address visibility
  • #
  • # If addressVisibility is not set, it will default back to "full" visibility.
  • updateModelAddress(
  • id: ID!,
  • field: ModelIdField,
  • streetAddressLines: [String!],
  • administrativeArea: String,
  • locality: String,
  • dependentLocality: String,
  • postalCode: String,
  • sortingCode: String,
  • countryCode: String,
  • addressVisibility: AddressVisibility
  • ): Model
  • # Set a model to active or inactive. Sometimes referred to as active or archived
  • # respectively.
  • # If the model is already in the given state or in the process of changing to that
  • # state this call will be idempotent.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies when searching on a `field` other than `id`
  • # @error spaces.illegal.activation.change: If the account does not support
  • # archived spaces.
  • # @error request.unsupported If allowActivate is false and activation of the model
  • # would result in unarchiving charge.
  • #
  • # Arguments
  • # id: The id of the model to retrieve.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # state: The state to set the model to, active to unarchive,
  • # inactive to archive.
  • # allowActivate: This should be set to true to allow activation
  • # of models even if activation of the model
  • # will result in unarchiving charges.
  • # If not provided this defaults to false.
  • updateModelState(
  • id: ID!,
  • field: ModelIdField,
  • state: ModelStateChange!,
  • allowActivate: Boolean
  • ): Model
  • # Sets whether a model can only be seen by members of the organization (internal)
  • # or by anyone
  • # with a link to the model (public).
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # id: The id of the model to retrieve.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # visibility: Whether the model should be public or private.
  • updateModelVisibility(
  • id: ID!,
  • field: ModelIdField,
  • visibility: ModelVisibility!
  • ): Model
  • # Remove access to a given model for a user.
  • #
  • # Arguments
  • # userId: undefined
  • # modelId: undefined
  • removeModelShareAccess(userId: ID!, modelId: ID!): Boolean!
  • # Remove access to a given model for a user.
  • #
  • # Arguments
  • # userId: undefined
  • # folderId: undefined
  • removeFolderShareAccess(userId: ID!, folderId: ID!): Boolean!
  • # Add access to a given model for a user with the given role. If the user already
  • # has access to the given model, update
  • # user role with the given role. Returns the ID of the model that was
  • # added/updated.
  • #
  • # Arguments
  • # userId: undefined
  • # roleId: undefined
  • # modelId: undefined
  • addOrUpdateModelShareAccess(
  • userId: ID!,
  • roleId: ID!,
  • modelId: ID!
  • ): UserModelShareAccess
  • # Add access to a given folder for a user with the given role. If its a new user,
  • # an email address should be provided with
  • # an optional invitation message. If the user already has access to the given
  • # folder, update user role with the given role.
  • # Returns the ID of the folder that was added/updated along with the role and user
  • # information.
  • # Note that you must provide either an userId or email address.
  • #
  • # Arguments
  • # organizationId: undefined
  • # email: undefined
  • # userId: undefined
  • # invitationMessage: undefined
  • # roleId: undefined
  • # folderId: undefined
  • addOrUpdateFolderShareAccess(
  • organizationId: ID,
  • email: String,
  • userId: ID,
  • invitationMessage: String,
  • roleId: ID!,
  • folderId: ID!
  • ): UserFolderShareAccess
  • # Add a Label to a Model.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • # @error request.invalid: If any of the fields in the label fail validation.
  • #
  • # Arguments
  • # modelId: The id of the model to add the Label to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # label: The Label details to use for creating the Label.
  • addLabel(modelId: ID!, field: ModelIdField, label: LabelDetails): Label
  • # A patch operation on a Label. The model id
  • # and Label id is required to identify which
  • # Label to patch, all other attributes should
  • # only be specified if they are intended to be changed.
  • #
  • # @error not.found: If no model with the given id exists or no label with the
  • # given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • # @error request.invalid: If any of the fields in the patch fail validation.
  • #
  • # Arguments
  • # modelId: The id of the model to patch the Label on.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # labelId: The id of the Label to patch.
  • # patch: The patch to apply to the Label. Only fields that
  • # are being mutated should be specified.
  • patchLabel(
  • modelId: ID!,
  • field: ModelIdField,
  • labelId: ID!,
  • patch: LabelPatch!
  • ): Label
  • # Remove a Label from a Model.
  • # Note if you wish to hide a label use `patchLabel(patch: { enabled: false })`
  • # instead.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model to delete the label from.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # labelId: The id of the Label to delete.
  • deleteLabel(modelId: ID!, field: ModelIdField, labelId: ID!): Boolean
  • # Arguments
  • # modelId: The id of the model to add the Mattertag to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # mattertag: The Mattertag details to use for creating the
  • # Mattertag
  • addMattertag(
  • modelId: ID!,
  • field: ModelIdField,
  • mattertag: MattertagDetails!
  • ): Mattertag
  • # A patch operation on a Mattertag. The model id
  • # and Mattertag id are required to identify which
  • # Mattertag to patch, all other attributes should
  • # only be specified if they are intended to be changed.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • # @error request.invalid: If any of the fields in the patch fail validation.
  • #
  • # Arguments
  • # modelId: The id of the model containing the Mattertag to patch.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # mattertagId: The id of the the Mattertag to patch.
  • # patch: undefined
  • patchMattertag(
  • modelId: ID!,
  • field: ModelIdField,
  • mattertagId: ID!,
  • patch: MattertagPatch!
  • ): Mattertag
  • # Sets the media associated with the Mattertag to be an external URL.
  • #
  • # @deprecated Use patchMattertag(modelId, field, mattertagId, { mediaUrl: url })
  • # as of v2022.04.14
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • # @error request.invalid If url is not a valid url.
  • #
  • # Arguments
  • # modelId: The id of the model containing the Mattertag to patch.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # mattertagId: The id of the the Mattertag to patch.
  • # type: The expected type of media at the given url.
  • # url: The url to the media to retrieve.
  • updateMattertagMediaUrl(
  • modelId: ID!,
  • field: ModelIdField,
  • mattertagId: ID!,
  • type: MattertagMediaType,
  • url: String!
  • ): Mattertag
  • # Removes any media associated with the Mattertag.
  • #
  • # @deprecated Use patchMattertag(modelId, field, mattertagId, { mediaUrl: "" }) as
  • # of v2022.04.14
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model containing the Mattertag to patch.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # mattertagId: The id of the the Mattertag to patch.
  • removeMattertagMedia(
  • modelId: ID!,
  • field: ModelIdField,
  • mattertagId: ID!
  • ): Mattertag
  • # Deletes the given Mattertag.
  • # This call will always return true unless an unexpected error is encountered.
  • #
  • # @error not.found: If no model with the given id exists. Note this will not
  • # happen if the
  • #
  • # mattertag does not exist as delete is idempotent, so attempting to delete a
  • # non-existent mattertag
  • #
  • # is ok.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model containing the Mattertag to
  • # delete.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # mattertagId: The id of the the Mattertag to delete.
  • deleteMattertag(modelId: ID!, field: ModelIdField, mattertagId: ID!): Boolean
  • # Creates a new Note associated with the model.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • #
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model to add the note to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # note: The details to use for creating the note
  • addNote(modelId: ID!, field: ModelIdField, note: NoteDetails!): Note
  • # A patch operation on a note. The model id
  • # and note id are required to identify which
  • # note to patch, all other attributes should
  • # only be specified if they are intended to be changed.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • # @error request.invalid: If any of the fields in the patch fail validation.
  • #
  • # Arguments
  • # modelId: The id of the model containing the note to patch.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # noteId: The id of the the note to patch.
  • # patch: undefined
  • patchNote(modelId: ID!, field: ModelIdField, noteId: ID!, patch: NotePatch!): Note
  • # Marks a Note as resolved.
  • #
  • # Arguments
  • # modelId: The id of the model containing the note to resolve.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # noteId: The id of the the note to resolve.
  • resolveNote(modelId: ID!, field: ModelIdField, noteId: ID!): Boolean
  • # Returns a resolved Note to open
  • #
  • # Arguments
  • # modelId: The id of the model containing the note to reopen.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # noteId: The id of the the note to reopen.
  • reopenNote(modelId: ID!, field: ModelIdField, noteId: ID!): Boolean
  • # Deletes the given note and all comments/attachments.
  • # This call will always return true unless an unexpected error is encountered.
  • #
  • # @error not.found: If no model with the given id exists. Note this will not
  • # happen if the
  • # note does not exist as delete is idempotent, so attempting to delete a
  • # non-existent note
  • # is ok.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model containing the note to patch.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # noteId: The id of the the note to delete.
  • deleteNote(modelId: ID!, field: ModelIdField, noteId: ID!): Boolean
  • # Adds a comment to a Note.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model this comment is made in.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # noteId: The id of the parent for this comment.
  • # comment: The details to use for creating the comment
  • addNoteComment(
  • modelId: ID!,
  • field: ModelIdField,
  • noteId: ID!,
  • comment: CommentDetails!
  • ): Comment
  • # A patch operation on a comment. The model id
  • # and comment id are required to identify which
  • # comment to patch, all other attributes should
  • # only be specified if they are intended to be changed.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • # @error request.invalid: If any of the fields in the patch fail validation.
  • #
  • # Arguments
  • # modelId: The id of the model containing the comment to patch.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # commentId: The id of the the comment to patch.
  • # patch: undefined
  • patchComment(
  • modelId: ID!,
  • field: ModelIdField,
  • commentId: ID!,
  • patch: CommentPatch!
  • ): Comment
  • # Deletes the given comment and any attachments.
  • # This call will always return true unless an unexpected error is encountered.
  • #
  • # @error not.found: If no model with the given id exists. Note this will not
  • # happen if the
  • # comment does not exist as delete is idempotent, so attempting to delete a
  • # non-existent comment
  • # is ok.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model containing the comment to delete.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # commentId: The id of the the comment to delete.
  • deleteComment(modelId: ID!, field: ModelIdField, commentId: ID!): Boolean
  • # Sets the media associated with the given comment.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • # @error request.invalid If url is not a valid url (for external urls).
  • #
  • # Arguments
  • # modelId: The id of the model containing the comment to attach
  • # media to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # commentId: The id of the the comment to attach media to.
  • # externalAttachments: undefined
  • addCommentAttachments(
  • modelId: ID!,
  • field: ModelIdField,
  • commentId: ID!,
  • externalAttachments: [ExternalAttachmentDetails!]
  • ): Comment
  • # Removes an external attachment.
  • #
  • # @error not.found: If no model with the given id exists.
  • # @error not.unique: If multiple models with the given id exist for this
  • # organization. Note this only applies
  • # when searching on a `field` other than `id`
  • #
  • # Arguments
  • # modelId: The id of the model containing the attachment to
  • # delete.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # attachmentId: The identifier of the attachment to delete.
  • # parentType: Type of the annotation that the media is attached
  • # to.
  • deleteExternalAttachment(
  • modelId: ID!,
  • field: ModelIdField,
  • attachmentId: ID!,
  • parentType: ParentType!
  • ): Boolean
  • # Add a new measurement path to the model.
  • #
  • # Arguments
  • # modelId: undefined
  • # field: undefined
  • # path: The measurement path definition.
  • addMeasurementPath(
  • modelId: ID!,
  • field: ModelIdField,
  • path: MeasurementPathDetails!
  • ): MeasurementPath
  • # A patch operation on a measurement path.
  • #
  • # Arguments
  • # modelId: undefined
  • # field: undefined
  • # pathId: The identifier of the measurement path to patch.
  • # patch: The patch to apply. Only the attributes that to be
  • # modified should be set in the patch.
  • patchMeasurementPath(
  • modelId: ID!,
  • field: ModelIdField,
  • pathId: ID!,
  • patch: MeasurementPathPatch!
  • ): MeasurementPath
  • # Delete a measurement path.
  • #
  • # Arguments
  • # modelId: undefined
  • # field: undefined
  • # pathId: The identifier of the measurement path to delete.
  • deleteMeasurementPath(
  • modelId: ID!,
  • field: ModelIdField,
  • pathId: ID!
  • ): Boolean
  • # A patch operation on a measurement.
  • #
  • # @deprecated Use measurementPaths instead, this field is no longer populated as
  • # of v2020.11.05.
  • #
  • # Arguments
  • # modelId: The id of the model the measurement is associated with
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # measurementId: The id of the measurement to patch.
  • # patch: The patch to apply to the measurement. Only fields that
  • # are being mutated should be specified.
  • patchMeasurement(
  • modelId: ID!,
  • field: ModelIdField,
  • measurementId: ID!,
  • patch: MeasurementPatch!
  • ): Measurement
  • # Delete a measurement.
  • #
  • # @deprecated Use measurementPaths instead, this field is no longer populated as
  • # of v2020.11.05.
  • #
  • # Arguments
  • # modelId: The id of the model to delete the measurement from.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # measurementId: The id of the measurement to delete.
  • deleteMeasurement(
  • modelId: ID!,
  • field: ModelIdField,
  • measurementId: ID!
  • ): Boolean
  • # Update some of the fields associated with a Photo.
  • #
  • # @error not.found If there is no model or photo with the given ids.
  • #
  • # Arguments
  • # modelId: undefined
  • # field: undefined
  • # photoId: undefined
  • # label: undefined
  • patchPhoto(modelId: ID!, field: ModelIdField, photoId: ID!, label: String): Photo
  • # @beta This is part of the Property Insights Beta
  • # Create a vertex to add to a bounded region.
  • #
  • # Arguments
  • # modelId: The id of the model to add the Vertex to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: If this field is set, it will serve as the ID for the new
  • # Vertex, otherwise a new ID will be generated.
  • # vertex: undefined
  • addBoundaryVertex(
  • modelId: ID!,
  • field: ModelIdField,
  • id: ID,
  • vertex: VertexDetails!
  • ): Vertex
  • # @beta This is part of the Property Insights Beta
  • # Create a boundary edge to add to a bounded region.
  • #
  • # Arguments
  • # modelId: The id of the model to add the Edge to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: If this field is set, it will serve as the ID for the new
  • # Edge, otherwise a new ID will be generated.
  • # edge: undefined
  • addBoundaryEdge(
  • modelId: ID!,
  • field: ModelIdField,
  • id: ID,
  • edge: EdgeDetails!
  • ): Edge
  • # @beta This is part of the Property Insights Beta
  • # Create a room.
  • #
  • # Arguments
  • # modelId: The id of the model to add the Room to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: If this field is set, it will serve as the ID for the new
  • # Room, otherwise a new ID will be generated.
  • # room: undefined
  • addRoom(modelId: ID!, field: ModelIdField, id: ID, room: RoomDetails!): ModelRoom
  • # @beta This is part of the Property Insights Beta
  • # Make multiple updates to room dimensional data and annotation/location
  • # associations.
  • #
  • # Arguments
  • # modelId: The id of the model to patch the Vertex on.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # updatedRoomDimensions: A list of all room dimensions to be
  • # updated.
  • # updatedRoomAssociations: All annotations and locations that
  • # fall within a given room. These will be updated to reflect this association.
  • bulkPatchRoomData(
  • modelId: ID!,
  • field: ModelIdField,
  • updatedRoomDimensions: [DimensionPatch!],
  • updatedRoomAssociations: [RoomAssociations!]
  • ): Boolean
  • # @beta This is part of the Property Insights Beta
  • # Update a bounded region vertex and impacted room data.
  • #
  • # Arguments
  • # modelId: The id of the model to patch the Vertex on.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: The id of the vertex to update.
  • # vertex: undefined
  • # updatedRoomDimensions: A list of all room dimensions updated by
  • # changes to this vertex.
  • # updatedRoomAssociations: A list of all annotations/locations
  • # which have changed rooms by this update.
  • patchBoundaryVertex(
  • modelId: ID!,
  • field: ModelIdField,
  • id: ID!,
  • vertex: VertexDetails!,
  • updatedRoomDimensions: [DimensionPatch!],
  • updatedRoomAssociations: [RoomAssociations!]
  • ): Vertex
  • # @beta This is part of the Property Insights Beta
  • # Update a bounded region edge and impacted room data.
  • #
  • # Arguments
  • # modelId: The id of the model to patch the Edge on.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: The id of the Edge to update.
  • # edge: undefined
  • # updatedRoomDimensions: A list of all room dimensions updated by
  • # changes to this edge.
  • # updatedRoomAssociations: A list of all annotations/locations
  • # which have changed rooms by this update.
  • patchBoundaryEdge(
  • modelId: ID!,
  • field: ModelIdField,
  • id: ID!,
  • edge: EdgeDetails!,
  • updatedRoomDimensions: [DimensionPatch!],
  • updatedRoomAssociations: [RoomAssociations!]
  • ): Edge
  • # @beta This is part of the Property Insights Beta
  • # Create an opening on an existing boundary edge.
  • #
  • # Arguments
  • # modelId: The id of the model to add the Opening to.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: The id of the Edge to update.
  • # openings: undefined
  • addEdgeOpenings(
  • modelId: ID!,
  • field: ModelIdField,
  • id: ID!,
  • openings: [OpeningDetails!]
  • ): Edge
  • # @beta This is part of the Property Insights Beta
  • # Delete specified openings from a boundary edge.
  • #
  • # Arguments
  • # modelId: The id of the model to remove the Opening from.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: The id of the Edge to update.
  • # layerId: The ID of the layer the Opening should be removed
  • # from.
  • # If left blank it will default to the View's default write layer, or the existing
  • # data's layer on a patch mutation.
  • # openings: undefined
  • removeEdgeOpenings(
  • modelId: ID!,
  • field: ModelIdField,
  • id: ID!,
  • layerId: ID,
  • openings: [ID!]
  • ): Boolean
  • # @beta This is part of the Property Insights Beta
  • # Update the details of an opening on a boundary edge.
  • #
  • # Arguments
  • # modelId: The id of the model to patch the Opening on.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: The id of the Edge to update.
  • # opening: undefined
  • patchEdgeOpening(
  • modelId: ID!,
  • field: ModelIdField,
  • id: ID!,
  • opening: OpeningDetails
  • ): Edge
  • # @beta This is part of the Property Insights Beta
  • # Update the details of a room.
  • #
  • # Arguments
  • # modelId: The id of the model to patch the Room on.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # id: The id of the room to update.
  • # room: undefined
  • patchRoom(modelId: ID!, field: ModelIdField, id: ID!, room: RoomDetails!): ModelRoom
  • # @beta This is part of the Property Insights Beta
  • # Delete rooms and their bounded regions.
  • #
  • # Warning: this can leave room boundaries in a non-closed state. Affected room and
  • # overall floor dimensional data and associated annotations
  • # will not be updated until a patchRoom is called to close them again.
  • #
  • # Arguments
  • # modelId: The id of the model to make room data deletions on.
  • # field: The id field to use, defaults to the primary identifier
  • # (id) but may also
  • # be a secondary identifier if that id is only applied to a single model.
  • # selectedData: undefined
  • deleteRoomsAndBoundaryData(
  • modelId: ID!,
  • field: ModelIdField,
  • selectedData: [RoomDataSelection!]
  • ): Boolean
  • # Unlocks the given bundle, ordering assets or
  • # publishing resources as needed.
  • # This call may result in charges to your account depending on your subscription.
  • # Success of the call means that the operation has been "approved",
  • # there may be additional time required for the associated asset
  • # to be generated.
  • #
  • # @error not.found: If no model or bundle with the given id(s) exists.
  • # @error request.unsupported: If the bundle is not available or if the model
  • # is in a state that prevents purchase.
  • # @error request.rate.exceeded: If capacity to process the bundle order has been
  • # exceeded.
  • #
  • # Arguments
  • # id: The id of the model the bundle is associated with.
  • # field: The id field to use when fetching the model.
  • # Default: id
  • # bundleId: The id of the bundle to unlock.
  • # options: Additional options to use when unlocking the bundle.
  • # Query `model(id, field) { bundle(bundleId) { supportedOptions } }` to get
  • # any additional unlock options that are available.
  • unlockModelBundle(
  • id: ID!,
  • field: ModelIdField,
  • bundleId: ID!,
  • options: UnlockOptions
  • ): ModelBundle
  • # Allows the asset associated with the bundle to be generated or regenerated if it
  • # is previously unlocked.
  • #
  • # @error request.unsupported: If the bundle is not available or if the model
  • # is in a state that prevents purchase.
  • # @error not.found: If no model or bundle with the given id(s) exists.
  • # @error request.invalid: If model asset is not unlocked
  • #
  • # Arguments
  • # id: The id of the model the bundle is associated with.
  • # field: The id field to use when fetching the model.
  • # Default: id
  • # bundleId: The id of the bundle to generate assets for.
  • generateBundleAssets(
  • id: ID!,
  • field: ModelIdField,
  • bundleId: ID!
  • ): ModelBundle
  • # @beta Model Event Webhooks
  • #
  • # Add a new Model event callback for the org that the user belongs to
  • #
  • # Arguments
  • # input: undefined
  • addModelEventWebhookCallback(
  • input: ModelEventCallbackInput
  • ): ModelEventWebhookCallback
  • # @beta Model Event Webhooks
  • #
  • # Update a Model event callback for an existing subscription
  • #
  • # Arguments
  • # id: undefined
  • # input: undefined
  • patchModelEventWebhookCallback(
  • id: ID!,
  • input: ModelEventCallbackPatchInput!
  • ): ModelEventWebhookCallback
  • # @beta Model Event Webhooks
  • #
  • # Remove Model event webhook callback for the org that the user belongs to
  • #
  • # Arguments
  • # id: Remove the model event webhook callback for the callback id
  • # that is provided.
  • # If not provided the delete all the callbacks for the organization.
  • removeModelEventWebhookCallback(id: ID!): Boolean
  • # @beta Model Event Webhooks
  • #
  • # Ping Model event webhook callback for the org that the user belongs to.
  • # This will result in a callback to the registered webhook.
  • #
  • # Arguments
  • # id: Ping the model event webhook callback for the callback id
  • # that is provided.
  • pingModelEventWebhookCallback(id: ID!): Boolean
  • # @beta Model Event Webhooks
  • #
  • # Add a model Event to webhook callback
  • #
  • # Arguments
  • # id: Add the model event to the webhook subscription for the
  • # callback id that is provided.
  • # eventTypes: undefined
  • addModelEventToCallback(
  • id: ID!,
  • eventTypes: [ModelEventType!]
  • ): ModelEventWebhookCallback
  • # @beta Model Event Webhooks
  • #
  • # Remove a model event from webhook subscription
  • #
  • # Arguments
  • # id: Remove the model event from the webhook subscription for
  • # the callback id that is provided.
  • # eventTypes: undefined
  • removeModelEventFromCallback(
  • id: ID!,
  • eventTypes: [ModelEventType!]
  • ): ModelEventWebhookCallback
  • # Creates or updates the active reel with the given elements.
  • #
  • # Arguments
  • # modelId: undefined
  • # field: undefined
  • # elements: undefined
  • putActiveReel(
  • modelId: ID!,
  • field: ModelIdField,
  • elements: [ReelElementInput!]
  • ): HighlightReel
  • # Create a temporary link to embed a private model
  • #
  • # Arguments
  • # modelId: The ID of the model to generate the link to
  • # clientId: The client ID of the application
  • # clientSecret: The client secret of the application
  • # validFor: The duration the link will be valid for.
  • #
  • # An ISO 8601 duration expression may be used, or a simplified version (1h, 30m,
  • # 90s, etc.)
  • # application: The Matterport application to generate the link
  • # to, defaults to 'showcase'
  • createPrivateModelEmbedLink(
  • modelId: ID!,
  • clientId: ID!,
  • clientSecret: String!,
  • validFor: Duration,
  • application: MatterportApplication
  • ): PrivateModelLink
  • # Manually delete a private model embed token, if it is required to be invalidated
  • # before its expiration.
  • #
  • # Arguments
  • # accessToken: The private access token, returned when creating
  • # the private model embed link.
  • # clientId: The client ID of the application
  • # clientSecret: The client secret of the application
  • deletePrivateModelEmbedToken(
  • accessToken: ID!,
  • clientId: ID!,
  • clientSecret: String!
  • ): Boolean
  • }

Require by

This element is not required by anyone