1# -------------------------------------------------------------------------------------------- 2# Copyright (c) Microsoft Corporation. All rights reserved. 3# Licensed under the MIT License. See License.txt in the project root for license information. 4# -------------------------------------------------------------------------------------------- 5# Generated file, DO NOT EDIT 6# Changes may cause incorrect behavior and will be lost if the code is regenerated. 7# -------------------------------------------------------------------------------------------- 8 9from msrest import Serializer, Deserializer 10from ...vss_client import VssClient 11from . import models 12 13 14class TfvcClient(VssClient): 15 """Tfvc 16 :param str base_url: Service URL 17 :param Authentication creds: Authenticated credentials. 18 """ 19 20 def __init__(self, base_url=None, creds=None): 21 super(TfvcClient, self).__init__(base_url, creds) 22 client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} 23 self._serialize = Serializer(client_models) 24 self._deserialize = Deserializer(client_models) 25 26 resource_area_identifier = '8aa40520-446d-40e6-89f6-9c9f9ce44c48' 27 28 def get_branch(self, path, project=None, include_parent=None, include_children=None): 29 """GetBranch. 30 Get a single branch hierarchy at the given path with parents or children (if specified) 31 :param str path: 32 :param str project: Project ID or project name 33 :param bool include_parent: 34 :param bool include_children: 35 :rtype: :class:`<TfvcBranch> <tfvc.v4_0.models.TfvcBranch>` 36 """ 37 route_values = {} 38 if project is not None: 39 route_values['project'] = self._serialize.url('project', project, 'str') 40 query_parameters = {} 41 if path is not None: 42 query_parameters['path'] = self._serialize.query('path', path, 'str') 43 if include_parent is not None: 44 query_parameters['includeParent'] = self._serialize.query('include_parent', include_parent, 'bool') 45 if include_children is not None: 46 query_parameters['includeChildren'] = self._serialize.query('include_children', include_children, 'bool') 47 response = self._send(http_method='GET', 48 location_id='bc1f417e-239d-42e7-85e1-76e80cb2d6eb', 49 version='4.0', 50 route_values=route_values, 51 query_parameters=query_parameters) 52 return self._deserialize('TfvcBranch', response) 53 54 def get_branches(self, project=None, include_parent=None, include_children=None, include_deleted=None, include_links=None): 55 """GetBranches. 56 Get a collection of branch roots -- first-level children, branches with no parents 57 :param str project: Project ID or project name 58 :param bool include_parent: 59 :param bool include_children: 60 :param bool include_deleted: 61 :param bool include_links: 62 :rtype: [TfvcBranch] 63 """ 64 route_values = {} 65 if project is not None: 66 route_values['project'] = self._serialize.url('project', project, 'str') 67 query_parameters = {} 68 if include_parent is not None: 69 query_parameters['includeParent'] = self._serialize.query('include_parent', include_parent, 'bool') 70 if include_children is not None: 71 query_parameters['includeChildren'] = self._serialize.query('include_children', include_children, 'bool') 72 if include_deleted is not None: 73 query_parameters['includeDeleted'] = self._serialize.query('include_deleted', include_deleted, 'bool') 74 if include_links is not None: 75 query_parameters['includeLinks'] = self._serialize.query('include_links', include_links, 'bool') 76 response = self._send(http_method='GET', 77 location_id='bc1f417e-239d-42e7-85e1-76e80cb2d6eb', 78 version='4.0', 79 route_values=route_values, 80 query_parameters=query_parameters) 81 return self._deserialize('[TfvcBranch]', self._unwrap_collection(response)) 82 83 def get_branch_refs(self, scope_path, project=None, include_deleted=None, include_links=None): 84 """GetBranchRefs. 85 Get branch hierarchies below the specified scopePath 86 :param str scope_path: 87 :param str project: Project ID or project name 88 :param bool include_deleted: 89 :param bool include_links: 90 :rtype: [TfvcBranchRef] 91 """ 92 route_values = {} 93 if project is not None: 94 route_values['project'] = self._serialize.url('project', project, 'str') 95 query_parameters = {} 96 if scope_path is not None: 97 query_parameters['scopePath'] = self._serialize.query('scope_path', scope_path, 'str') 98 if include_deleted is not None: 99 query_parameters['includeDeleted'] = self._serialize.query('include_deleted', include_deleted, 'bool') 100 if include_links is not None: 101 query_parameters['includeLinks'] = self._serialize.query('include_links', include_links, 'bool') 102 response = self._send(http_method='GET', 103 location_id='bc1f417e-239d-42e7-85e1-76e80cb2d6eb', 104 version='4.0', 105 route_values=route_values, 106 query_parameters=query_parameters) 107 return self._deserialize('[TfvcBranchRef]', self._unwrap_collection(response)) 108 109 def get_changeset_changes(self, id=None, skip=None, top=None): 110 """GetChangesetChanges. 111 Retrieve Tfvc changes for a given changeset 112 :param int id: 113 :param int skip: 114 :param int top: 115 :rtype: [TfvcChange] 116 """ 117 route_values = {} 118 if id is not None: 119 route_values['id'] = self._serialize.url('id', id, 'int') 120 query_parameters = {} 121 if skip is not None: 122 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 123 if top is not None: 124 query_parameters['$top'] = self._serialize.query('top', top, 'int') 125 response = self._send(http_method='GET', 126 location_id='f32b86f2-15b9-4fe6-81b1-6f8938617ee5', 127 version='4.0', 128 route_values=route_values, 129 query_parameters=query_parameters) 130 return self._deserialize('[TfvcChange]', self._unwrap_collection(response)) 131 132 def create_changeset(self, changeset, project=None): 133 """CreateChangeset. 134 Create a new changeset. 135 :param :class:`<TfvcChangeset> <tfvc.v4_0.models.TfvcChangeset>` changeset: 136 :param str project: Project ID or project name 137 :rtype: :class:`<TfvcChangesetRef> <tfvc.v4_0.models.TfvcChangesetRef>` 138 """ 139 route_values = {} 140 if project is not None: 141 route_values['project'] = self._serialize.url('project', project, 'str') 142 content = self._serialize.body(changeset, 'TfvcChangeset') 143 response = self._send(http_method='POST', 144 location_id='0bc8f0a4-6bfb-42a9-ba84-139da7b99c49', 145 version='4.0', 146 route_values=route_values, 147 content=content) 148 return self._deserialize('TfvcChangesetRef', response) 149 150 def get_changeset(self, id, project=None, max_change_count=None, include_details=None, include_work_items=None, max_comment_length=None, include_source_rename=None, skip=None, top=None, orderby=None, search_criteria=None): 151 """GetChangeset. 152 Retrieve a Tfvc Changeset 153 :param int id: 154 :param str project: Project ID or project name 155 :param int max_change_count: 156 :param bool include_details: 157 :param bool include_work_items: 158 :param int max_comment_length: 159 :param bool include_source_rename: 160 :param int skip: 161 :param int top: 162 :param str orderby: 163 :param :class:`<TfvcChangesetSearchCriteria> <tfvc.v4_0.models.TfvcChangesetSearchCriteria>` search_criteria: 164 :rtype: :class:`<TfvcChangeset> <tfvc.v4_0.models.TfvcChangeset>` 165 """ 166 route_values = {} 167 if project is not None: 168 route_values['project'] = self._serialize.url('project', project, 'str') 169 if id is not None: 170 route_values['id'] = self._serialize.url('id', id, 'int') 171 query_parameters = {} 172 if max_change_count is not None: 173 query_parameters['maxChangeCount'] = self._serialize.query('max_change_count', max_change_count, 'int') 174 if include_details is not None: 175 query_parameters['includeDetails'] = self._serialize.query('include_details', include_details, 'bool') 176 if include_work_items is not None: 177 query_parameters['includeWorkItems'] = self._serialize.query('include_work_items', include_work_items, 'bool') 178 if max_comment_length is not None: 179 query_parameters['maxCommentLength'] = self._serialize.query('max_comment_length', max_comment_length, 'int') 180 if include_source_rename is not None: 181 query_parameters['includeSourceRename'] = self._serialize.query('include_source_rename', include_source_rename, 'bool') 182 if skip is not None: 183 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 184 if top is not None: 185 query_parameters['$top'] = self._serialize.query('top', top, 'int') 186 if orderby is not None: 187 query_parameters['$orderby'] = self._serialize.query('orderby', orderby, 'str') 188 if search_criteria is not None: 189 if search_criteria.item_path is not None: 190 query_parameters['searchCriteria.itemPath'] = search_criteria.item_path 191 if search_criteria.author is not None: 192 query_parameters['searchCriteria.author'] = search_criteria.author 193 if search_criteria.from_date is not None: 194 query_parameters['searchCriteria.fromDate'] = search_criteria.from_date 195 if search_criteria.to_date is not None: 196 query_parameters['searchCriteria.toDate'] = search_criteria.to_date 197 if search_criteria.from_id is not None: 198 query_parameters['searchCriteria.fromId'] = search_criteria.from_id 199 if search_criteria.to_id is not None: 200 query_parameters['searchCriteria.toId'] = search_criteria.to_id 201 if search_criteria.follow_renames is not None: 202 query_parameters['searchCriteria.followRenames'] = search_criteria.follow_renames 203 if search_criteria.include_links is not None: 204 query_parameters['searchCriteria.includeLinks'] = search_criteria.include_links 205 response = self._send(http_method='GET', 206 location_id='0bc8f0a4-6bfb-42a9-ba84-139da7b99c49', 207 version='4.0', 208 route_values=route_values, 209 query_parameters=query_parameters) 210 return self._deserialize('TfvcChangeset', response) 211 212 def get_changesets(self, project=None, max_comment_length=None, skip=None, top=None, orderby=None, search_criteria=None): 213 """GetChangesets. 214 Retrieve Tfvc changesets Note: This is a new version of the GetChangesets API that doesn't expose the unneeded queryParams present in the 1.0 version of the API. 215 :param str project: Project ID or project name 216 :param int max_comment_length: 217 :param int skip: 218 :param int top: 219 :param str orderby: 220 :param :class:`<TfvcChangesetSearchCriteria> <tfvc.v4_0.models.TfvcChangesetSearchCriteria>` search_criteria: 221 :rtype: [TfvcChangesetRef] 222 """ 223 route_values = {} 224 if project is not None: 225 route_values['project'] = self._serialize.url('project', project, 'str') 226 query_parameters = {} 227 if max_comment_length is not None: 228 query_parameters['maxCommentLength'] = self._serialize.query('max_comment_length', max_comment_length, 'int') 229 if skip is not None: 230 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 231 if top is not None: 232 query_parameters['$top'] = self._serialize.query('top', top, 'int') 233 if orderby is not None: 234 query_parameters['$orderby'] = self._serialize.query('orderby', orderby, 'str') 235 if search_criteria is not None: 236 if search_criteria.item_path is not None: 237 query_parameters['searchCriteria.itemPath'] = search_criteria.item_path 238 if search_criteria.author is not None: 239 query_parameters['searchCriteria.author'] = search_criteria.author 240 if search_criteria.from_date is not None: 241 query_parameters['searchCriteria.fromDate'] = search_criteria.from_date 242 if search_criteria.to_date is not None: 243 query_parameters['searchCriteria.toDate'] = search_criteria.to_date 244 if search_criteria.from_id is not None: 245 query_parameters['searchCriteria.fromId'] = search_criteria.from_id 246 if search_criteria.to_id is not None: 247 query_parameters['searchCriteria.toId'] = search_criteria.to_id 248 if search_criteria.follow_renames is not None: 249 query_parameters['searchCriteria.followRenames'] = search_criteria.follow_renames 250 if search_criteria.include_links is not None: 251 query_parameters['searchCriteria.includeLinks'] = search_criteria.include_links 252 response = self._send(http_method='GET', 253 location_id='0bc8f0a4-6bfb-42a9-ba84-139da7b99c49', 254 version='4.0', 255 route_values=route_values, 256 query_parameters=query_parameters) 257 return self._deserialize('[TfvcChangesetRef]', self._unwrap_collection(response)) 258 259 def get_batched_changesets(self, changesets_request_data): 260 """GetBatchedChangesets. 261 :param :class:`<TfvcChangesetsRequestData> <tfvc.v4_0.models.TfvcChangesetsRequestData>` changesets_request_data: 262 :rtype: [TfvcChangesetRef] 263 """ 264 content = self._serialize.body(changesets_request_data, 'TfvcChangesetsRequestData') 265 response = self._send(http_method='POST', 266 location_id='b7e7c173-803c-4fea-9ec8-31ee35c5502a', 267 version='4.0', 268 content=content) 269 return self._deserialize('[TfvcChangesetRef]', self._unwrap_collection(response)) 270 271 def get_changeset_work_items(self, id=None): 272 """GetChangesetWorkItems. 273 :param int id: 274 :rtype: [AssociatedWorkItem] 275 """ 276 route_values = {} 277 if id is not None: 278 route_values['id'] = self._serialize.url('id', id, 'int') 279 response = self._send(http_method='GET', 280 location_id='64ae0bea-1d71-47c9-a9e5-fe73f5ea0ff4', 281 version='4.0', 282 route_values=route_values) 283 return self._deserialize('[AssociatedWorkItem]', self._unwrap_collection(response)) 284 285 def get_items_batch(self, item_request_data, project=None): 286 """GetItemsBatch. 287 Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path. 288 :param :class:`<TfvcItemRequestData> <tfvc.v4_0.models.TfvcItemRequestData>` item_request_data: 289 :param str project: Project ID or project name 290 :rtype: [[TfvcItem]] 291 """ 292 route_values = {} 293 if project is not None: 294 route_values['project'] = self._serialize.url('project', project, 'str') 295 content = self._serialize.body(item_request_data, 'TfvcItemRequestData') 296 response = self._send(http_method='POST', 297 location_id='fe6f827b-5f64-480f-b8af-1eca3b80e833', 298 version='4.0', 299 route_values=route_values, 300 content=content) 301 return self._deserialize('[[TfvcItem]]', self._unwrap_collection(response)) 302 303 def get_items_batch_zip(self, item_request_data, project=None, **kwargs): 304 """GetItemsBatchZip. 305 Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path. 306 :param :class:`<TfvcItemRequestData> <tfvc.v4_0.models.TfvcItemRequestData>` item_request_data: 307 :param str project: Project ID or project name 308 :rtype: object 309 """ 310 route_values = {} 311 if project is not None: 312 route_values['project'] = self._serialize.url('project', project, 'str') 313 content = self._serialize.body(item_request_data, 'TfvcItemRequestData') 314 response = self._send(http_method='POST', 315 location_id='fe6f827b-5f64-480f-b8af-1eca3b80e833', 316 version='4.0', 317 route_values=route_values, 318 content=content, 319 accept_media_type='application/zip') 320 if "callback" in kwargs: 321 callback = kwargs["callback"] 322 else: 323 callback = None 324 return self._client.stream_download(response, callback=callback) 325 326 def get_item(self, path, project=None, file_name=None, download=None, scope_path=None, recursion_level=None, version_descriptor=None): 327 """GetItem. 328 Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. 329 :param str path: 330 :param str project: Project ID or project name 331 :param str file_name: 332 :param bool download: 333 :param str scope_path: 334 :param str recursion_level: 335 :param :class:`<TfvcVersionDescriptor> <tfvc.v4_0.models.TfvcVersionDescriptor>` version_descriptor: 336 :rtype: :class:`<TfvcItem> <tfvc.v4_0.models.TfvcItem>` 337 """ 338 route_values = {} 339 if project is not None: 340 route_values['project'] = self._serialize.url('project', project, 'str') 341 query_parameters = {} 342 if path is not None: 343 query_parameters['path'] = self._serialize.query('path', path, 'str') 344 if file_name is not None: 345 query_parameters['fileName'] = self._serialize.query('file_name', file_name, 'str') 346 if download is not None: 347 query_parameters['download'] = self._serialize.query('download', download, 'bool') 348 if scope_path is not None: 349 query_parameters['scopePath'] = self._serialize.query('scope_path', scope_path, 'str') 350 if recursion_level is not None: 351 query_parameters['recursionLevel'] = self._serialize.query('recursion_level', recursion_level, 'str') 352 if version_descriptor is not None: 353 if version_descriptor.version_option is not None: 354 query_parameters['versionDescriptor.versionOption'] = version_descriptor.version_option 355 if version_descriptor.version_type is not None: 356 query_parameters['versionDescriptor.versionType'] = version_descriptor.version_type 357 if version_descriptor.version is not None: 358 query_parameters['versionDescriptor.version'] = version_descriptor.version 359 response = self._send(http_method='GET', 360 location_id='ba9fc436-9a38-4578-89d6-e4f3241f5040', 361 version='4.0', 362 route_values=route_values, 363 query_parameters=query_parameters) 364 return self._deserialize('TfvcItem', response) 365 366 def get_item_content(self, path, project=None, file_name=None, download=None, scope_path=None, recursion_level=None, version_descriptor=None, **kwargs): 367 """GetItemContent. 368 Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. 369 :param str path: 370 :param str project: Project ID or project name 371 :param str file_name: 372 :param bool download: 373 :param str scope_path: 374 :param str recursion_level: 375 :param :class:`<TfvcVersionDescriptor> <tfvc.v4_0.models.TfvcVersionDescriptor>` version_descriptor: 376 :rtype: object 377 """ 378 route_values = {} 379 if project is not None: 380 route_values['project'] = self._serialize.url('project', project, 'str') 381 query_parameters = {} 382 if path is not None: 383 query_parameters['path'] = self._serialize.query('path', path, 'str') 384 if file_name is not None: 385 query_parameters['fileName'] = self._serialize.query('file_name', file_name, 'str') 386 if download is not None: 387 query_parameters['download'] = self._serialize.query('download', download, 'bool') 388 if scope_path is not None: 389 query_parameters['scopePath'] = self._serialize.query('scope_path', scope_path, 'str') 390 if recursion_level is not None: 391 query_parameters['recursionLevel'] = self._serialize.query('recursion_level', recursion_level, 'str') 392 if version_descriptor is not None: 393 if version_descriptor.version_option is not None: 394 query_parameters['versionDescriptor.versionOption'] = version_descriptor.version_option 395 if version_descriptor.version_type is not None: 396 query_parameters['versionDescriptor.versionType'] = version_descriptor.version_type 397 if version_descriptor.version is not None: 398 query_parameters['versionDescriptor.version'] = version_descriptor.version 399 response = self._send(http_method='GET', 400 location_id='ba9fc436-9a38-4578-89d6-e4f3241f5040', 401 version='4.0', 402 route_values=route_values, 403 query_parameters=query_parameters, 404 accept_media_type='application/octet-stream') 405 if "callback" in kwargs: 406 callback = kwargs["callback"] 407 else: 408 callback = None 409 return self._client.stream_download(response, callback=callback) 410 411 def get_items(self, project=None, scope_path=None, recursion_level=None, include_links=None, version_descriptor=None): 412 """GetItems. 413 Get a list of Tfvc items 414 :param str project: Project ID or project name 415 :param str scope_path: 416 :param str recursion_level: 417 :param bool include_links: 418 :param :class:`<TfvcVersionDescriptor> <tfvc.v4_0.models.TfvcVersionDescriptor>` version_descriptor: 419 :rtype: [TfvcItem] 420 """ 421 route_values = {} 422 if project is not None: 423 route_values['project'] = self._serialize.url('project', project, 'str') 424 query_parameters = {} 425 if scope_path is not None: 426 query_parameters['scopePath'] = self._serialize.query('scope_path', scope_path, 'str') 427 if recursion_level is not None: 428 query_parameters['recursionLevel'] = self._serialize.query('recursion_level', recursion_level, 'str') 429 if include_links is not None: 430 query_parameters['includeLinks'] = self._serialize.query('include_links', include_links, 'bool') 431 if version_descriptor is not None: 432 if version_descriptor.version_option is not None: 433 query_parameters['versionDescriptor.versionOption'] = version_descriptor.version_option 434 if version_descriptor.version_type is not None: 435 query_parameters['versionDescriptor.versionType'] = version_descriptor.version_type 436 if version_descriptor.version is not None: 437 query_parameters['versionDescriptor.version'] = version_descriptor.version 438 response = self._send(http_method='GET', 439 location_id='ba9fc436-9a38-4578-89d6-e4f3241f5040', 440 version='4.0', 441 route_values=route_values, 442 query_parameters=query_parameters) 443 return self._deserialize('[TfvcItem]', self._unwrap_collection(response)) 444 445 def get_item_text(self, path, project=None, file_name=None, download=None, scope_path=None, recursion_level=None, version_descriptor=None, **kwargs): 446 """GetItemText. 447 Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. 448 :param str path: 449 :param str project: Project ID or project name 450 :param str file_name: 451 :param bool download: 452 :param str scope_path: 453 :param str recursion_level: 454 :param :class:`<TfvcVersionDescriptor> <tfvc.v4_0.models.TfvcVersionDescriptor>` version_descriptor: 455 :rtype: object 456 """ 457 route_values = {} 458 if project is not None: 459 route_values['project'] = self._serialize.url('project', project, 'str') 460 query_parameters = {} 461 if path is not None: 462 query_parameters['path'] = self._serialize.query('path', path, 'str') 463 if file_name is not None: 464 query_parameters['fileName'] = self._serialize.query('file_name', file_name, 'str') 465 if download is not None: 466 query_parameters['download'] = self._serialize.query('download', download, 'bool') 467 if scope_path is not None: 468 query_parameters['scopePath'] = self._serialize.query('scope_path', scope_path, 'str') 469 if recursion_level is not None: 470 query_parameters['recursionLevel'] = self._serialize.query('recursion_level', recursion_level, 'str') 471 if version_descriptor is not None: 472 if version_descriptor.version_option is not None: 473 query_parameters['versionDescriptor.versionOption'] = version_descriptor.version_option 474 if version_descriptor.version_type is not None: 475 query_parameters['versionDescriptor.versionType'] = version_descriptor.version_type 476 if version_descriptor.version is not None: 477 query_parameters['versionDescriptor.version'] = version_descriptor.version 478 response = self._send(http_method='GET', 479 location_id='ba9fc436-9a38-4578-89d6-e4f3241f5040', 480 version='4.0', 481 route_values=route_values, 482 query_parameters=query_parameters, 483 accept_media_type='text/plain') 484 if "callback" in kwargs: 485 callback = kwargs["callback"] 486 else: 487 callback = None 488 return self._client.stream_download(response, callback=callback) 489 490 def get_item_zip(self, path, project=None, file_name=None, download=None, scope_path=None, recursion_level=None, version_descriptor=None, **kwargs): 491 """GetItemZip. 492 Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. 493 :param str path: 494 :param str project: Project ID or project name 495 :param str file_name: 496 :param bool download: 497 :param str scope_path: 498 :param str recursion_level: 499 :param :class:`<TfvcVersionDescriptor> <tfvc.v4_0.models.TfvcVersionDescriptor>` version_descriptor: 500 :rtype: object 501 """ 502 route_values = {} 503 if project is not None: 504 route_values['project'] = self._serialize.url('project', project, 'str') 505 query_parameters = {} 506 if path is not None: 507 query_parameters['path'] = self._serialize.query('path', path, 'str') 508 if file_name is not None: 509 query_parameters['fileName'] = self._serialize.query('file_name', file_name, 'str') 510 if download is not None: 511 query_parameters['download'] = self._serialize.query('download', download, 'bool') 512 if scope_path is not None: 513 query_parameters['scopePath'] = self._serialize.query('scope_path', scope_path, 'str') 514 if recursion_level is not None: 515 query_parameters['recursionLevel'] = self._serialize.query('recursion_level', recursion_level, 'str') 516 if version_descriptor is not None: 517 if version_descriptor.version_option is not None: 518 query_parameters['versionDescriptor.versionOption'] = version_descriptor.version_option 519 if version_descriptor.version_type is not None: 520 query_parameters['versionDescriptor.versionType'] = version_descriptor.version_type 521 if version_descriptor.version is not None: 522 query_parameters['versionDescriptor.version'] = version_descriptor.version 523 response = self._send(http_method='GET', 524 location_id='ba9fc436-9a38-4578-89d6-e4f3241f5040', 525 version='4.0', 526 route_values=route_values, 527 query_parameters=query_parameters, 528 accept_media_type='application/zip') 529 if "callback" in kwargs: 530 callback = kwargs["callback"] 531 else: 532 callback = None 533 return self._client.stream_download(response, callback=callback) 534 535 def get_label_items(self, label_id, top=None, skip=None): 536 """GetLabelItems. 537 Get items under a label. 538 :param str label_id: Unique identifier of label 539 :param int top: Max number of items to return 540 :param int skip: Number of items to skip 541 :rtype: [TfvcItem] 542 """ 543 route_values = {} 544 if label_id is not None: 545 route_values['labelId'] = self._serialize.url('label_id', label_id, 'str') 546 query_parameters = {} 547 if top is not None: 548 query_parameters['$top'] = self._serialize.query('top', top, 'int') 549 if skip is not None: 550 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 551 response = self._send(http_method='GET', 552 location_id='06166e34-de17-4b60-8cd1-23182a346fda', 553 version='4.0', 554 route_values=route_values, 555 query_parameters=query_parameters) 556 return self._deserialize('[TfvcItem]', self._unwrap_collection(response)) 557 558 def get_label(self, label_id, request_data, project=None): 559 """GetLabel. 560 Get a single deep label. 561 :param str label_id: Unique identifier of label 562 :param :class:`<TfvcLabelRequestData> <tfvc.v4_0.models.TfvcLabelRequestData>` request_data: maxItemCount 563 :param str project: Project ID or project name 564 :rtype: :class:`<TfvcLabel> <tfvc.v4_0.models.TfvcLabel>` 565 """ 566 route_values = {} 567 if project is not None: 568 route_values['project'] = self._serialize.url('project', project, 'str') 569 if label_id is not None: 570 route_values['labelId'] = self._serialize.url('label_id', label_id, 'str') 571 query_parameters = {} 572 if request_data is not None: 573 if request_data.label_scope is not None: 574 query_parameters['requestData.labelScope'] = request_data.label_scope 575 if request_data.name is not None: 576 query_parameters['requestData.name'] = request_data.name 577 if request_data.owner is not None: 578 query_parameters['requestData.owner'] = request_data.owner 579 if request_data.item_label_filter is not None: 580 query_parameters['requestData.itemLabelFilter'] = request_data.item_label_filter 581 if request_data.max_item_count is not None: 582 query_parameters['requestData.maxItemCount'] = request_data.max_item_count 583 if request_data.include_links is not None: 584 query_parameters['requestData.includeLinks'] = request_data.include_links 585 response = self._send(http_method='GET', 586 location_id='a5d9bd7f-b661-4d0e-b9be-d9c16affae54', 587 version='4.0', 588 route_values=route_values, 589 query_parameters=query_parameters) 590 return self._deserialize('TfvcLabel', response) 591 592 def get_labels(self, request_data, project=None, top=None, skip=None): 593 """GetLabels. 594 Get a collection of shallow label references. 595 :param :class:`<TfvcLabelRequestData> <tfvc.v4_0.models.TfvcLabelRequestData>` request_data: labelScope, name, owner, and itemLabelFilter 596 :param str project: Project ID or project name 597 :param int top: Max number of labels to return 598 :param int skip: Number of labels to skip 599 :rtype: [TfvcLabelRef] 600 """ 601 route_values = {} 602 if project is not None: 603 route_values['project'] = self._serialize.url('project', project, 'str') 604 query_parameters = {} 605 if request_data is not None: 606 if request_data.label_scope is not None: 607 query_parameters['requestData.labelScope'] = request_data.label_scope 608 if request_data.name is not None: 609 query_parameters['requestData.name'] = request_data.name 610 if request_data.owner is not None: 611 query_parameters['requestData.owner'] = request_data.owner 612 if request_data.item_label_filter is not None: 613 query_parameters['requestData.itemLabelFilter'] = request_data.item_label_filter 614 if request_data.max_item_count is not None: 615 query_parameters['requestData.maxItemCount'] = request_data.max_item_count 616 if request_data.include_links is not None: 617 query_parameters['requestData.includeLinks'] = request_data.include_links 618 if top is not None: 619 query_parameters['$top'] = self._serialize.query('top', top, 'int') 620 if skip is not None: 621 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 622 response = self._send(http_method='GET', 623 location_id='a5d9bd7f-b661-4d0e-b9be-d9c16affae54', 624 version='4.0', 625 route_values=route_values, 626 query_parameters=query_parameters) 627 return self._deserialize('[TfvcLabelRef]', self._unwrap_collection(response)) 628 629 def get_shelveset_changes(self, shelveset_id, top=None, skip=None): 630 """GetShelvesetChanges. 631 Get changes included in a shelveset. 632 :param str shelveset_id: Shelveset's unique ID 633 :param int top: Max number of changes to return 634 :param int skip: Number of changes to skip 635 :rtype: [TfvcChange] 636 """ 637 query_parameters = {} 638 if shelveset_id is not None: 639 query_parameters['shelvesetId'] = self._serialize.query('shelveset_id', shelveset_id, 'str') 640 if top is not None: 641 query_parameters['$top'] = self._serialize.query('top', top, 'int') 642 if skip is not None: 643 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 644 response = self._send(http_method='GET', 645 location_id='dbaf075b-0445-4c34-9e5b-82292f856522', 646 version='4.0', 647 query_parameters=query_parameters) 648 return self._deserialize('[TfvcChange]', self._unwrap_collection(response)) 649 650 def get_shelveset(self, shelveset_id, request_data=None): 651 """GetShelveset. 652 Get a single deep shelveset. 653 :param str shelveset_id: Shelveset's unique ID 654 :param :class:`<TfvcShelvesetRequestData> <tfvc.v4_0.models.TfvcShelvesetRequestData>` request_data: includeDetails, includeWorkItems, maxChangeCount, and maxCommentLength 655 :rtype: :class:`<TfvcShelveset> <tfvc.v4_0.models.TfvcShelveset>` 656 """ 657 query_parameters = {} 658 if shelveset_id is not None: 659 query_parameters['shelvesetId'] = self._serialize.query('shelveset_id', shelveset_id, 'str') 660 if request_data is not None: 661 if request_data.name is not None: 662 query_parameters['requestData.name'] = request_data.name 663 if request_data.owner is not None: 664 query_parameters['requestData.owner'] = request_data.owner 665 if request_data.max_comment_length is not None: 666 query_parameters['requestData.maxCommentLength'] = request_data.max_comment_length 667 if request_data.max_change_count is not None: 668 query_parameters['requestData.maxChangeCount'] = request_data.max_change_count 669 if request_data.include_details is not None: 670 query_parameters['requestData.includeDetails'] = request_data.include_details 671 if request_data.include_work_items is not None: 672 query_parameters['requestData.includeWorkItems'] = request_data.include_work_items 673 if request_data.include_links is not None: 674 query_parameters['requestData.includeLinks'] = request_data.include_links 675 response = self._send(http_method='GET', 676 location_id='e36d44fb-e907-4b0a-b194-f83f1ed32ad3', 677 version='4.0', 678 query_parameters=query_parameters) 679 return self._deserialize('TfvcShelveset', response) 680 681 def get_shelvesets(self, request_data=None, top=None, skip=None): 682 """GetShelvesets. 683 Return a collection of shallow shelveset references. 684 :param :class:`<TfvcShelvesetRequestData> <tfvc.v4_0.models.TfvcShelvesetRequestData>` request_data: name, owner, and maxCommentLength 685 :param int top: Max number of shelvesets to return 686 :param int skip: Number of shelvesets to skip 687 :rtype: [TfvcShelvesetRef] 688 """ 689 query_parameters = {} 690 if request_data is not None: 691 if request_data.name is not None: 692 query_parameters['requestData.name'] = request_data.name 693 if request_data.owner is not None: 694 query_parameters['requestData.owner'] = request_data.owner 695 if request_data.max_comment_length is not None: 696 query_parameters['requestData.maxCommentLength'] = request_data.max_comment_length 697 if request_data.max_change_count is not None: 698 query_parameters['requestData.maxChangeCount'] = request_data.max_change_count 699 if request_data.include_details is not None: 700 query_parameters['requestData.includeDetails'] = request_data.include_details 701 if request_data.include_work_items is not None: 702 query_parameters['requestData.includeWorkItems'] = request_data.include_work_items 703 if request_data.include_links is not None: 704 query_parameters['requestData.includeLinks'] = request_data.include_links 705 if top is not None: 706 query_parameters['$top'] = self._serialize.query('top', top, 'int') 707 if skip is not None: 708 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 709 response = self._send(http_method='GET', 710 location_id='e36d44fb-e907-4b0a-b194-f83f1ed32ad3', 711 version='4.0', 712 query_parameters=query_parameters) 713 return self._deserialize('[TfvcShelvesetRef]', self._unwrap_collection(response)) 714 715 def get_shelveset_work_items(self, shelveset_id): 716 """GetShelvesetWorkItems. 717 Get work items associated with a shelveset. 718 :param str shelveset_id: Shelveset's unique ID 719 :rtype: [AssociatedWorkItem] 720 """ 721 query_parameters = {} 722 if shelveset_id is not None: 723 query_parameters['shelvesetId'] = self._serialize.query('shelveset_id', shelveset_id, 'str') 724 response = self._send(http_method='GET', 725 location_id='a7a0c1c1-373e-425a-b031-a519474d743d', 726 version='4.0', 727 query_parameters=query_parameters) 728 return self._deserialize('[AssociatedWorkItem]', self._unwrap_collection(response)) 729 730