GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Issues (90)

Security Analysis    no request data  

This project does not seem to handle request data directly as such no vulnerable execution paths were found.

  Cross-Site Scripting
Cross-Site Scripting enables an attacker to inject code into the response of a web-request that is viewed by other users. It can for example be used to bypass access controls, or even to take over other users' accounts.
  File Exposure
File Exposure allows an attacker to gain access to local files that he should not be able to access. These files can for example include database credentials, or other configuration files.
  File Manipulation
File Manipulation enables an attacker to write custom data to files. This potentially leads to injection of arbitrary code on the server.
  Object Injection
Object Injection enables an attacker to inject an object into PHP code, and can lead to arbitrary code execution, file exposure, or file manipulation attacks.
  Code Injection
Code Injection enables an attacker to execute arbitrary code on the server.
  Response Splitting
Response Splitting can be used to send arbitrary responses.
  File Inclusion
File Inclusion enables an attacker to inject custom files into PHP's file loading mechanism, either explicitly passed to include, or for example via PHP's auto-loading mechanism.
  Command Injection
Command Injection enables an attacker to inject a shell command that is execute with the privileges of the web-server. This can be used to expose sensitive data, or gain access of your server.
  SQL Injection
SQL Injection enables an attacker to execute arbitrary SQL code on your database server gaining access to user data, or manipulating user data.
  XPath Injection
XPath Injection enables an attacker to modify the parts of XML document that are read. If that XML document is for example used for authentication, this can lead to further vulnerabilities similar to SQL Injection.
  LDAP Injection
LDAP Injection enables an attacker to inject LDAP statements potentially granting permission to run unauthorized queries, or modify content inside the LDAP tree.
  Header Injection
  Other Vulnerability
This category comprises other attack vectors such as manipulating the PHP runtime, loading custom extensions, freezing the runtime, or similar.
  Regex Injection
Regex Injection enables an attacker to execute arbitrary code in your PHP process.
  XML Injection
XML Injection enables an attacker to read files on your local filesystem including configuration files, or can be abused to freeze your web-server process.
  Variable Injection
Variable Injection enables an attacker to overwrite program variables with custom data, and can lead to further vulnerabilities.
Unfortunately, the security analysis is currently not available for your project. If you are a non-commercial open-source project, please contact support to gain access.

src/ObjectServiceInterface.php (4 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
namespace Dkd\PhpCmis;
3
4
/*
5
 * This file is part of php-cmis-client.
6
 *
7
 * (c) Sascha Egerer <[email protected]>
8
 *
9
 * For the full copyright and license information, please view the LICENSE
10
 * file that was distributed with this source code.
11
 */
12
13
use Dkd\PhpCmis\Data\AclInterface;
14
use Dkd\PhpCmis\Data\AllowableActionsInterface;
15
use Dkd\PhpCmis\Data\BulkUpdateObjectIdAndChangeTokenInterface;
16
use Dkd\PhpCmis\Data\ExtensionDataInterface;
17
use Dkd\PhpCmis\Data\FailedToDeleteDataInterface;
18
use Dkd\PhpCmis\Data\ObjectDataInterface;
19
use Dkd\PhpCmis\Data\PropertiesInterface;
20
use Dkd\PhpCmis\Data\RenditionDataInterface;
21
use Dkd\PhpCmis\Enum\IncludeRelationships;
22
use Dkd\PhpCmis\Enum\UnfileObject;
23
use Dkd\PhpCmis\Enum\VersioningState;
24
use GuzzleHttp\Stream\StreamInterface;
25
26
/**
27
 * Object Service interface.
28
 *
29
 * See the CMIS 1.0 and CMIS 1.1 specifications for details on the operations,
30
 * parameters, exceptions and the domain model.
31
 */
32
interface ObjectServiceInterface
33
{
34
35
    /**
36
     * Appends the content stream to the content of the document.
37
     *
38
     * The stream in contentStream is consumed but not closed by this method.
39
     *
40
     * @param string $repositoryId the identifier for the repository
41
     * @param string $objectId the identifier for the object. The repository might return a different/new object id
42
     * @param StreamInterface $contentStream the content stream to append
43
     * @param boolean $isLastChunk indicates if this content stream is the last chunk
44
     * @param string|null $changeToken the last change token of this object that the client received.
45
     *      The repository might return a new change token (default is <code>null</code>)
46
     * @param ExtensionDataInterface|null $extension
47
     */
48
    public function appendContentStream(
49
        $repositoryId,
50
        & $objectId,
51
        StreamInterface $contentStream,
52
        $isLastChunk,
53
        & $changeToken = null,
54
        ExtensionDataInterface $extension = null
55
    );
56
57
    /**
58
     * Updates properties and secondary types of one or more objects.
59
     *
60
     * @param string $repositoryId the identifier for the repository
61
     * @param BulkUpdateObjectIdAndChangeTokenInterface[] $objectIdsAndChangeTokens
62
     * @param PropertiesInterface $properties
63
     * @param string[] $addSecondaryTypeIds the secondary types to apply
64
     * @param string[] $removeSecondaryTypeIds the secondary types to remove
65
     * @param ExtensionDataInterface|null $extension
66
     * @return BulkUpdateObjectIdAndChangeTokenInterface[]
67
     */
68
    public function bulkUpdateProperties(
69
        $repositoryId,
70
        array $objectIdsAndChangeTokens,
71
        PropertiesInterface $properties,
72
        array $addSecondaryTypeIds,
73
        array $removeSecondaryTypeIds,
74
        ExtensionDataInterface $extension = null
75
    );
76
77
    /**
78
     * Creates a document object of the specified type (given by the cmis:objectTypeId property)
79
     * in the (optionally) specified location.
80
     *
81
     * @param string $repositoryId the identifier for the repository
82
     * @param PropertiesInterface $properties the property values that must be applied to the newly
83
     *      created document object
84
     * @param string|null $folderId if specified, the identifier for the folder that must be the parent
85
     *      folder for the newly created document object
86
     * @param StreamInterface|null $contentStream the content stream that must be stored for the newly
87
     *      created document object
88
     * @param VersioningState|null  $versioningState specifies what the versioning state of the newly created object
89
     *      must be (default is <code>VersioningState::MAJOR</code>)
90
     * @param string[] $policies a list of policy IDs that must be applied to the newly created document object
91
     * @param AclInterface|null  $addAces a list of ACEs that must be added to the newly created document object,
92
     *      either using the ACL from folderId if specified, or being applied if no folderId is specified
93
     * @param AclInterface|null  $removeAces a list of ACEs that must be removed from the newly created document object,
94
     *      either using the ACL from folderId if specified, or being ignored if no folderId is specified
95
     * @param ExtensionDataInterface|null  $extension
96
     * @return string|null Returns the new object id or <code>null</code> if the repository sent an empty
97
     *      result (which should not happen)
98
     */
99 View Code Duplication
    public function createDocument(
0 ignored issues
show
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
100
        $repositoryId,
101
        PropertiesInterface $properties,
102
        $folderId = null,
103
        StreamInterface $contentStream = null,
104
        VersioningState $versioningState = null,
105
        array $policies = [],
106
        AclInterface $addAces = null,
107
        AclInterface $removeAces = null,
108
        ExtensionDataInterface $extension = null
109
    );
110
111
    /**
112
     * Creates a document object as a copy of the given source document in the (optionally) specified location.
113
     *
114
     * @param string $repositoryId The identifier for the repository
115
     * @param string $sourceId The identifier for the source document
116
     * @param PropertiesInterface $properties The property values that must be applied to the newly
117
     *      created document object
118
     * @param string|null $folderId If specified, the identifier for the folder that must be the parent folder for the
119
     *      newly created document object
120
     * @param VersioningState|null $versioningState Specifies what the versioning state of the newly created object
121
     *      must be (default is <code>VersioningState::MAJOR</code>)
122
     * @param string[] $policies a list of policy IDs that must be applied to the newly created document object
123
     * @param AclInterface|null $addAces A list of ACEs that must be added to the newly created document object,
124
     *      either using the ACL from folderId if specified, or being applied if no folderId is specified
125
     * @param AclInterface|null $removeAces A list of ACEs that must be removed from the newly created document object,
126
     *      either using the ACL from folderId if specified, or being ignored if no folderId is specified
127
     * @param ExtensionDataInterface|null $extension
128
     * @return string The id of the newly-created document.
129
     */
130 View Code Duplication
    public function createDocumentFromSource(
0 ignored issues
show
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
131
        $repositoryId,
132
        $sourceId,
133
        PropertiesInterface $properties,
134
        $folderId = null,
135
        VersioningState $versioningState = null,
136
        array $policies = [],
137
        AclInterface $addAces = null,
138
        AclInterface $removeAces = null,
139
        ExtensionDataInterface $extension = null
140
    );
141
142
    /**
143
     * Creates a folder object of the specified type (given by the cmis:objectTypeId property) in
144
     * the specified location.
145
     *
146
     * @param string $repositoryId the identifier for the repository
147
     * @param PropertiesInterface $properties the property values that must be applied to the newly
148
     *      created document object
149
     * @param string $folderId if specified, the identifier for the folder that must be the parent folder for the
150
     *      newly created document object
151
     * @param string[] $policies a list of policy IDs that must be applied to the newly created document object
152
     * @param AclInterface|null $addAces a list of ACEs that must be added to the newly created document object,
153
     *      either using the ACL from folderId if specified, or being applied if no folderId is specified
154
     * @param AclInterface|null $removeAces a list of ACEs that must be removed from the newly created document object,
155
     *      either using the ACL from folderId if specified, or being ignored if no folderId is specified
156
     * @param ExtensionDataInterface|null $extension
157
     * @return string|null Returns the new object id or <code>null</code> if the repository sent an empty
158
     *      result (which should not happen)
159
     */
160
    public function createFolder(
161
        $repositoryId,
162
        PropertiesInterface $properties,
163
        $folderId,
164
        array $policies = [],
165
        AclInterface $addAces = null,
166
        AclInterface $removeAces = null,
167
        ExtensionDataInterface $extension = null
168
    );
169
170
    /**
171
     * Creates an item object of the specified type (given by the cmis:objectTypeId property).
172
     *
173
     * @param string $repositoryId The identifier for the repository
174
     * @param PropertiesInterface $properties The property values that must be applied to the newly
175
     *      created document object
176
     * @param string|null $folderId If specified, the identifier for the folder that must be the parent folder for the
177
     *      newly created document object
178
     * @param string[] $policies A list of policy IDs that must be applied to the newly created document object
179
     * @param AclInterface|null $addAces A list of ACEs that must be added to the newly created document object,
180
     *      either using the ACL from folderId if specified, or being applied if no folderId is specified
181
     * @param AclInterface|null $removeAces A list of ACEs that must be removed from the newly created document object,
182
     *      either using the ACL from folderId if specified, or being ignored if no folderId is specified
183
     * @param ExtensionDataInterface|null $extension
184
     * @return string|null Returns the new item id or <code>null</code> if the repository sent an empty
185
     *      result (which should not happen)
186
     */
187
    public function createItem(
188
        $repositoryId,
189
        PropertiesInterface $properties,
190
        $folderId = null,
191
        array $policies = [],
192
        AclInterface $addAces = null,
193
        AclInterface $removeAces = null,
194
        ExtensionDataInterface $extension = null
195
    );
196
197
    /**
198
     * Creates a policy object of the specified type (given by the cmis:objectTypeId property).
199
     *
200
     * @param string $repositoryId The identifier for the repository
201
     * @param PropertiesInterface $properties The property values that must be applied to the newly
202
     *      created document object
203
     * @param string|null $folderId If specified, the identifier for the folder that must be the parent folder for the
204
     *      newly created document object
205
     * @param string[] $policies A list of policy IDs that must be applied to the newly created document object
206
     * @param AclInterface|null $addAces A list of ACEs that must be added to the newly created document object,
207
     *      either using the ACL from folderId if specified, or being applied if no folderId is specified
208
     * @param AclInterface|null $removeAces A list of ACEs that must be removed from the newly created document object,
209
     *      either using the ACL from folderId if specified, or being ignored if no folderId is specified
210
     * @param ExtensionDataInterface|null $extension
211
     * @return string The id of the newly-created policy.
212
     */
213
    public function createPolicy(
214
        $repositoryId,
215
        PropertiesInterface $properties,
216
        $folderId = null,
217
        array $policies = [],
218
        AclInterface $addAces = null,
219
        AclInterface $removeAces = null,
220
        ExtensionDataInterface $extension = null
221
    );
222
223
    /**
224
     * Creates a relationship object of the specified type (given by the cmis:objectTypeId property).
225
     *
226
     * @param string $repositoryId the identifier for the repository
227
     * @param PropertiesInterface $properties the property values that must be applied to the newly
228
     *      created document object
229
     * @param string[] $policies a list of policy IDs that must be applied to the newly created document object
230
     * @param AclInterface|null $addAces a list of ACEs that must be added to the newly created document object,
231
     *      either using the ACL from folderId if specified, or being applied if no folderId is specified
232
     * @param AclInterface|null $removeAces a list of ACEs that must be removed from the newly created document object,
233
     *      either using the ACL from folderId if specified, or being ignored if no folderId is specified
234
     * @param ExtensionDataInterface|null $extension
235
     * @return string
236
     */
237
    public function createRelationship(
238
        $repositoryId,
239
        PropertiesInterface $properties,
240
        array $policies = [],
241
        AclInterface $addAces = null,
242
        AclInterface $removeAces = null,
243
        ExtensionDataInterface $extension = null
244
    );
245
246
    /**
247
     * Deletes the content stream for the specified document object.
248
     *
249
     * @param string $repositoryId the identifier for the repository
250
     * @param string $objectId the identifier for the object. The repository might return a different/new object id
251
     * @param string|null $changeToken the last change token of this object that the client received.
252
     *      The repository might return a new change token (default is <code>null</code>)
253
     * @param ExtensionDataInterface|null $extension
254
     */
255
    public function deleteContentStream(
256
        $repositoryId,
257
        & $objectId,
258
        & $changeToken = null,
259
        ExtensionDataInterface $extension = null
260
    );
261
262
    /**
263
     * Deletes the specified object.
264
     *
265
     * @param string $repositoryId the identifier for the repository
266
     * @param string $objectId the identifier for the object
267
     * @param boolean $allVersions If <code>true</code> then delete all versions of the document, otherwise delete only
268
     *      the document object specified (default is <code>true</code>)
269
     * @param ExtensionDataInterface|null $extension
270
     */
271
    public function deleteObject(
272
        $repositoryId,
273
        $objectId,
274
        $allVersions = true,
275
        ExtensionDataInterface $extension = null
276
    );
277
278
    /**
279
     * Deletes the specified folder object and all of its child- and descendant-objects.
280
     *
281
     * @param string $repositoryId the identifier for the repository
282
     * @param string $folderId the identifier for the folder
283
     * @param boolean $allVersions If <code>true</code> then delete all versions of the document, otherwise delete only
284
     *      the document object specified (default is <code>true</code>)
285
     * @param UnfileObject|null $unfileObjects defines how the repository must process file-able child- or
286
     *      descendant-objects (default is UnfileObject::DELETE)
287
     * @param boolean $continueOnFailure If <code>true</code>, then the repository should continue attempting to perform
288
     *      this operation even if deletion of a child- or descendant-object in the specified folder cannot be deleted
289
     * @param ExtensionDataInterface|null $extension
290
     * @return FailedToDeleteDataInterface Returns a list of object ids that could not be deleted
291
     */
292
    public function deleteTree(
293
        $repositoryId,
294
        $folderId,
295
        $allVersions = true,
296
        UnfileObject $unfileObjects = null,
297
        $continueOnFailure = false,
298
        ExtensionDataInterface $extension = null
299
    );
300
301
    /**
302
     * Gets the list of allowable actions for an object.
303
     *
304
     * @param string $repositoryId the identifier for the repository
305
     * @param string $objectId the identifier for the object
306
     * @param ExtensionDataInterface|null $extension
307
     * @return AllowableActionsInterface
308
     */
309
    public function getAllowableActions($repositoryId, $objectId, ExtensionDataInterface $extension = null);
310
311
    /**
312
     * Gets the content stream for the specified document object, or gets a rendition stream for
313
     * a specified rendition of a document or folder object.
314
     *
315
     * @param string $repositoryId the identifier for the repository
316
     * @param string $objectId the identifier for the object
317
     * @param string|null $streamId
318
     * @param integer|null $offset
319
     * @param integer|null $length
320
     * @param ExtensionDataInterface|null $extension
321
     * @return StreamInterface|null
322
     */
323
    public function getContentStream(
324
        $repositoryId,
325
        $objectId,
326
        $streamId = null,
327
        $offset = null,
328
        $length = null,
329
        ExtensionDataInterface $extension = null
330
    );
331
332
    /**
333
     * Gets the specified information for the object specified by id.
334
     *
335
     * @param string $repositoryId the identifier for the repository
336
     * @param string $objectId the identifier for the object
337
     * @param string|null $filter a comma-separated list of query names that defines which properties
338
     *      must be returned by the repository (default is repository specific)
339
     * @param boolean $includeAllowableActions if <code>true</code>, then the repository must return the allowable
340
     *      actions for the object (default is <code>false</code>)
341
     * @param IncludeRelationships|null $includeRelationships indicates what relationships in which the objects
342
     *      participate must be returned (default is <code>IncludeRelationships::NONE</code>)
343
     * @param string $renditionFilter indicates what set of renditions the repository must return whose kind
344
     *      matches this filter (default is "cmis:none")
345
     * @param boolean $includePolicyIds if <code>true</code>, then the repository must return the policy ids for
346
     *      the object (default is <code>false</code>)
347
     * @param boolean $includeAcl if <code>true</code>, then the repository must return the ACL for the object
348
     *      (default is <code>false</code>)
349
     * @param ExtensionDataInterface|null $extension
350
     * @return ObjectDataInterface|null Returns object of type ObjectDataInterface or <code>null</code> if the
351
     *      repository response was empty
352
     */
353 View Code Duplication
    public function getObject(
0 ignored issues
show
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
354
        $repositoryId,
355
        $objectId,
356
        $filter = null,
357
        $includeAllowableActions = false,
358
        IncludeRelationships $includeRelationships = null,
359
        $renditionFilter = Constants::RENDITION_NONE,
360
        $includePolicyIds = false,
361
        $includeAcl = false,
362
        ExtensionDataInterface $extension = null
363
    );
364
365
    /**
366
     * Gets the specified information for the object specified by path.
367
     *
368
     * @param string $repositoryId the identifier for the repository
369
     * @param string $path the path to the object
370
     * @param string|null $filter a comma-separated list of query names that defines which properties must be
371
     *      returned by the repository (default is repository specific)
372
     * @param boolean $includeAllowableActions if <code>true</code>, then the repository must return the allowable
373
     *      actions for the object (default is <code>false</code>)
374
     * @param IncludeRelationships|null $includeRelationships indicates what relationships in which the objects
375
     *      participate must be returned (default is <code>IncludeRelationships::NONE</code>)
376
     * @param string $renditionFilter indicates what set of renditions the repository must return whose kind
377
     *      matches this filter (default is "cmis:none")
378
     * @param boolean $includePolicyIds if <code>true</code>, then the repository must return the policy ids for
379
     *      the object (default is <code>false</code>)
380
     * @param boolean $includeAcl if <code>true</code>, then the repository must return the ACL for the object
381
     *      (default is <code>false</code>)
382
     * @param ExtensionDataInterface|null $extension
383
     * @return ObjectDataInterface|null Returns object of type <code>ObjectDataInterface</code> or <code>null</code>
384
     *      if the repository response was empty
385
     */
386 View Code Duplication
    public function getObjectByPath(
0 ignored issues
show
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
387
        $repositoryId,
388
        $path,
389
        $filter = null,
390
        $includeAllowableActions = false,
391
        IncludeRelationships $includeRelationships = null,
392
        $renditionFilter = Constants::RENDITION_NONE,
393
        $includePolicyIds = false,
394
        $includeAcl = false,
395
        ExtensionDataInterface $extension = null
396
    );
397
398
    /**
399
     * Gets the list of properties for an object.
400
     *
401
     * @param string $repositoryId the identifier for the repository
402
     * @param string $objectId the identifier for the object
403
     * @param string|null $filter a comma-separated list of query names that defines which properties
404
     *      must be returned by the repository (default is repository specific)
405
     * @param ExtensionDataInterface|null $extension
406
     * @return PropertiesInterface
407
     */
408
    public function getProperties(
409
        $repositoryId,
410
        $objectId,
411
        $filter = null,
412
        ExtensionDataInterface $extension = null
413
    );
414
415
    /**
416
     * Gets the list of associated renditions for the specified object.
417
     * Only rendition attributes are returned, not rendition stream.
418
     *
419
     * @param string $repositoryId the identifier for the repository
420
     * @param string $objectId the identifier for the object
421
     * @param string $renditionFilter indicates what set of renditions the repository must return whose kind
422
     *      matches this filter (default is "cmis:none")
423
     * @param integer|null $maxItems the maximum number of items to return in a response
424
     *      (default is repository specific)
425
     * @param integer $skipCount number of potential results that the repository MUST skip/page over before
426
     *      returning any results (default is 0)
427
     * @param ExtensionDataInterface|null $extension
428
     * @return RenditionDataInterface[]
429
     */
430
    public function getRenditions(
431
        $repositoryId,
432
        $objectId,
433
        $renditionFilter = Constants::RENDITION_NONE,
434
        $maxItems = null,
435
        $skipCount = 0,
436
        ExtensionDataInterface $extension = null
437
    );
438
439
    /**
440
     * Moves the specified file-able object from one folder to another.
441
     *
442
     * @param string $repositoryId the identifier for the repository
443
     * @param string $objectId the identifier for the object. The repository might return a different/new object id
444
     * @param string $targetFolderId the identifier for the target folder
445
     * @param string $sourceFolderId the identifier for the source folder
446
     * @param ExtensionDataInterface|null $extension
447
     * @return ObjectDataInterface|null Returns object of type ObjectDataInterface or <code>null</code>
448
     *      if the repository response was empty
449
     */
450
    public function moveObject(
451
        $repositoryId,
452
        & $objectId,
453
        $targetFolderId,
454
        $sourceFolderId,
455
        ExtensionDataInterface $extension = null
456
    );
457
458
    /**
459
     * Sets the content stream for the specified document object.
460
     *
461
     * @param string $repositoryId The identifier for the repository
462
     * @param string $objectId The identifier for the object. The repository might return a different/new object id
463
     * @param StreamInterface $contentStream The content stream
464
     * @param boolean $overwriteFlag If <code>true</code>, then the repository must replace the existing content stream
465
     *      for the object (if any) with the input content stream. If <code>false</code>, then the repository must only
466
     *      set the input content stream for the object if the object currently does not have a content stream
467
     *      (default is <code>true</code>)
468
     * @param string|null $changeToken The last change token of this object that the client received.
469
     *      The repository might return a new change token (default is <code>null</code>)
470
     * @param ExtensionDataInterface|null $extension
471
     */
472
    public function setContentStream(
473
        $repositoryId,
474
        & $objectId,
475
        StreamInterface $contentStream,
476
        $overwriteFlag = true,
477
        & $changeToken = null,
478
        ExtensionDataInterface $extension = null
479
    );
480
481
    /**
482
     * Updates properties of the specified object.
483
     *
484
     * @param string $repositoryId The identifier for the repository
485
     * @param string $objectId The identifier for the object. The repository might return a different/new object id
486
     * @param PropertiesInterface $properties The updated property values that must be applied to the object
487
     * @param string|null $changeToken The last change token of this object that the client received.
488
     *      The repository might return a new change token (default is <code>null</code>)
489
     * @param ExtensionDataInterface|null $extension
490
     */
491
    public function updateProperties(
492
        $repositoryId,
493
        & $objectId,
494
        PropertiesInterface $properties,
495
        & $changeToken = null,
496
        ExtensionDataInterface $extension = null
497
    );
498
}
499