cyberdesk 2.0.0__py3-none-any.whl → 2.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cyberdesk might be problematic. Click here for more details.
- cyberdesk/__init__.py +1 -1
- cyberdesk/client.py +358 -6
- {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/METADATA +1 -1
- {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/RECORD +29 -12
- openapi_client/cyberdesk_cloud_client/api/machines/get_machine_pools_v1_machines_machine_id_pools_get.py +169 -0
- openapi_client/cyberdesk_cloud_client/api/machines/update_machine_pools_v1_machines_machine_id_pools_put.py +190 -0
- openapi_client/cyberdesk_cloud_client/api/pools/__init__.py +1 -0
- openapi_client/cyberdesk_cloud_client/api/pools/add_machines_to_pool_v1_pools_pool_id_machines_post.py +186 -0
- openapi_client/cyberdesk_cloud_client/api/pools/create_pool_v1_pools_post.py +172 -0
- openapi_client/cyberdesk_cloud_client/api/pools/delete_pool_v1_pools_pool_id_delete.py +162 -0
- openapi_client/cyberdesk_cloud_client/api/pools/get_pool_v1_pools_pool_id_get.py +185 -0
- openapi_client/cyberdesk_cloud_client/api/pools/list_pools_v1_pools_get.py +186 -0
- openapi_client/cyberdesk_cloud_client/api/pools/remove_machines_from_pool_v1_pools_pool_id_machines_delete.py +184 -0
- openapi_client/cyberdesk_cloud_client/api/pools/update_pool_v1_pools_pool_id_patch.py +186 -0
- openapi_client/cyberdesk_cloud_client/models/__init__.py +14 -0
- openapi_client/cyberdesk_cloud_client/models/machine_pool_assignment.py +69 -0
- openapi_client/cyberdesk_cloud_client/models/machine_pool_update.py +69 -0
- openapi_client/cyberdesk_cloud_client/models/machine_response.py +46 -1
- openapi_client/cyberdesk_cloud_client/models/paginated_response_pool_response.py +97 -0
- openapi_client/cyberdesk_cloud_client/models/pool_create.py +82 -0
- openapi_client/cyberdesk_cloud_client/models/pool_response.py +137 -0
- openapi_client/cyberdesk_cloud_client/models/pool_update.py +92 -0
- openapi_client/cyberdesk_cloud_client/models/pool_with_machines.py +162 -0
- openapi_client/cyberdesk_cloud_client/models/run_bulk_create.py +40 -0
- openapi_client/cyberdesk_cloud_client/models/run_create.py +40 -0
- openapi_client/cyberdesk_cloud_client/models/run_response.py +39 -0
- {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/WHEEL +0 -0
- {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/licenses/LICENSE +0 -0
- {cyberdesk-2.0.0.dist-info → cyberdesk-2.1.0.dist-info}/top_level.txt +0 -0
cyberdesk/__init__.py
CHANGED
cyberdesk/client.py
CHANGED
|
@@ -14,6 +14,17 @@ from openapi_client.cyberdesk_cloud_client.api.machines import (
|
|
|
14
14
|
get_machine_v1_machines_machine_id_get,
|
|
15
15
|
update_machine_v1_machines_machine_id_patch,
|
|
16
16
|
delete_machine_v1_machines_machine_id_delete,
|
|
17
|
+
get_machine_pools_v1_machines_machine_id_pools_get,
|
|
18
|
+
update_machine_pools_v1_machines_machine_id_pools_put,
|
|
19
|
+
)
|
|
20
|
+
from openapi_client.cyberdesk_cloud_client.api.pools import (
|
|
21
|
+
list_pools_v1_pools_get,
|
|
22
|
+
create_pool_v1_pools_post,
|
|
23
|
+
get_pool_v1_pools_pool_id_get,
|
|
24
|
+
update_pool_v1_pools_pool_id_patch,
|
|
25
|
+
delete_pool_v1_pools_pool_id_delete,
|
|
26
|
+
add_machines_to_pool_v1_pools_pool_id_machines_post,
|
|
27
|
+
remove_machines_from_pool_v1_pools_pool_id_machines_delete,
|
|
17
28
|
)
|
|
18
29
|
from openapi_client.cyberdesk_cloud_client.api.workflows import (
|
|
19
30
|
list_workflows_v1_workflows_get,
|
|
@@ -58,6 +69,12 @@ from openapi_client.cyberdesk_cloud_client.models import (
|
|
|
58
69
|
MachineUpdate,
|
|
59
70
|
MachineResponse,
|
|
60
71
|
MachineStatus,
|
|
72
|
+
MachinePoolUpdate,
|
|
73
|
+
PoolCreate,
|
|
74
|
+
PoolUpdate,
|
|
75
|
+
PoolResponse,
|
|
76
|
+
PoolWithMachines,
|
|
77
|
+
MachinePoolAssignment,
|
|
61
78
|
WorkflowCreate,
|
|
62
79
|
WorkflowUpdate,
|
|
63
80
|
WorkflowResponse,
|
|
@@ -80,6 +97,7 @@ from openapi_client.cyberdesk_cloud_client.models import (
|
|
|
80
97
|
RunAttachmentDownloadUrlResponse,
|
|
81
98
|
AttachmentType,
|
|
82
99
|
PaginatedResponseMachineResponse,
|
|
100
|
+
PaginatedResponsePoolResponse,
|
|
83
101
|
PaginatedResponseWorkflowResponse,
|
|
84
102
|
PaginatedResponseRunResponse,
|
|
85
103
|
PaginatedResponseConnectionResponse,
|
|
@@ -94,6 +112,12 @@ __all__ = [
|
|
|
94
112
|
"MachineUpdate",
|
|
95
113
|
"MachineResponse",
|
|
96
114
|
"MachineStatus",
|
|
115
|
+
"MachinePoolUpdate",
|
|
116
|
+
"PoolCreate",
|
|
117
|
+
"PoolUpdate",
|
|
118
|
+
"PoolResponse",
|
|
119
|
+
"PoolWithMachines",
|
|
120
|
+
"MachinePoolAssignment",
|
|
97
121
|
"WorkflowCreate",
|
|
98
122
|
"WorkflowUpdate",
|
|
99
123
|
"WorkflowResponse",
|
|
@@ -270,6 +294,299 @@ class MachinesAPI:
|
|
|
270
294
|
return ApiResponse(data={"success": True})
|
|
271
295
|
except Exception as e:
|
|
272
296
|
return ApiResponse(error=e)
|
|
297
|
+
|
|
298
|
+
async def get_pools(self, machine_id: str) -> ApiResponse:
|
|
299
|
+
"""Get all pools that a machine belongs to."""
|
|
300
|
+
try:
|
|
301
|
+
response = await get_machine_pools_v1_machines_machine_id_pools_get.asyncio(
|
|
302
|
+
client=self.client,
|
|
303
|
+
machine_id=_to_uuid(machine_id)
|
|
304
|
+
)
|
|
305
|
+
return ApiResponse(data=response)
|
|
306
|
+
except Exception as e:
|
|
307
|
+
return ApiResponse(error=e)
|
|
308
|
+
|
|
309
|
+
def get_pools_sync(self, machine_id: str) -> ApiResponse:
|
|
310
|
+
"""Get all pools that a machine belongs to (synchronous)."""
|
|
311
|
+
try:
|
|
312
|
+
response = get_machine_pools_v1_machines_machine_id_pools_get.sync(
|
|
313
|
+
client=self.client,
|
|
314
|
+
machine_id=_to_uuid(machine_id)
|
|
315
|
+
)
|
|
316
|
+
return ApiResponse(data=response)
|
|
317
|
+
except Exception as e:
|
|
318
|
+
return ApiResponse(error=e)
|
|
319
|
+
|
|
320
|
+
async def update_pools(self, machine_id: str, data: MachinePoolUpdate) -> ApiResponse:
|
|
321
|
+
"""Update a machine's pool assignments.
|
|
322
|
+
|
|
323
|
+
This replaces all existing pool assignments with the new ones.
|
|
324
|
+
|
|
325
|
+
Args:
|
|
326
|
+
machine_id: The machine ID
|
|
327
|
+
data: MachinePoolUpdate with pool_ids list
|
|
328
|
+
|
|
329
|
+
Returns:
|
|
330
|
+
ApiResponse with updated MachineResponse
|
|
331
|
+
"""
|
|
332
|
+
try:
|
|
333
|
+
response = await update_machine_pools_v1_machines_machine_id_pools_put.asyncio(
|
|
334
|
+
client=self.client,
|
|
335
|
+
machine_id=_to_uuid(machine_id),
|
|
336
|
+
body=data
|
|
337
|
+
)
|
|
338
|
+
return ApiResponse(data=response)
|
|
339
|
+
except Exception as e:
|
|
340
|
+
return ApiResponse(error=e)
|
|
341
|
+
|
|
342
|
+
def update_pools_sync(self, machine_id: str, data: MachinePoolUpdate) -> ApiResponse:
|
|
343
|
+
"""Update a machine's pool assignments (synchronous).
|
|
344
|
+
|
|
345
|
+
This replaces all existing pool assignments with the new ones.
|
|
346
|
+
|
|
347
|
+
Args:
|
|
348
|
+
machine_id: The machine ID
|
|
349
|
+
data: MachinePoolUpdate with pool_ids list
|
|
350
|
+
|
|
351
|
+
Returns:
|
|
352
|
+
ApiResponse with updated MachineResponse
|
|
353
|
+
"""
|
|
354
|
+
try:
|
|
355
|
+
response = update_machine_pools_v1_machines_machine_id_pools_put.sync(
|
|
356
|
+
client=self.client,
|
|
357
|
+
machine_id=_to_uuid(machine_id),
|
|
358
|
+
body=data
|
|
359
|
+
)
|
|
360
|
+
return ApiResponse(data=response)
|
|
361
|
+
except Exception as e:
|
|
362
|
+
return ApiResponse(error=e)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
class PoolsAPI:
|
|
366
|
+
"""Pools API endpoints."""
|
|
367
|
+
|
|
368
|
+
def __init__(self, client: AuthenticatedClient):
|
|
369
|
+
self.client = client
|
|
370
|
+
|
|
371
|
+
async def list(
|
|
372
|
+
self,
|
|
373
|
+
skip: Optional[int] = None,
|
|
374
|
+
limit: Optional[int] = None
|
|
375
|
+
) -> ApiResponse:
|
|
376
|
+
"""List pools for the organization."""
|
|
377
|
+
try:
|
|
378
|
+
response = await list_pools_v1_pools_get.asyncio(
|
|
379
|
+
client=self.client,
|
|
380
|
+
skip=_to_unset_or_value(skip),
|
|
381
|
+
limit=_to_unset_or_value(limit)
|
|
382
|
+
)
|
|
383
|
+
return ApiResponse(data=response)
|
|
384
|
+
except Exception as e:
|
|
385
|
+
return ApiResponse(error=e)
|
|
386
|
+
|
|
387
|
+
def list_sync(
|
|
388
|
+
self,
|
|
389
|
+
skip: Optional[int] = None,
|
|
390
|
+
limit: Optional[int] = None
|
|
391
|
+
) -> ApiResponse:
|
|
392
|
+
"""List pools for the organization (synchronous)."""
|
|
393
|
+
try:
|
|
394
|
+
response = list_pools_v1_pools_get.sync(
|
|
395
|
+
client=self.client,
|
|
396
|
+
skip=_to_unset_or_value(skip),
|
|
397
|
+
limit=_to_unset_or_value(limit)
|
|
398
|
+
)
|
|
399
|
+
return ApiResponse(data=response)
|
|
400
|
+
except Exception as e:
|
|
401
|
+
return ApiResponse(error=e)
|
|
402
|
+
|
|
403
|
+
async def create(self, data: PoolCreate) -> ApiResponse:
|
|
404
|
+
"""Create a new pool."""
|
|
405
|
+
try:
|
|
406
|
+
response = await create_pool_v1_pools_post.asyncio(
|
|
407
|
+
client=self.client,
|
|
408
|
+
body=data
|
|
409
|
+
)
|
|
410
|
+
return ApiResponse(data=response)
|
|
411
|
+
except Exception as e:
|
|
412
|
+
return ApiResponse(error=e)
|
|
413
|
+
|
|
414
|
+
def create_sync(self, data: PoolCreate) -> ApiResponse:
|
|
415
|
+
"""Create a new pool (synchronous)."""
|
|
416
|
+
try:
|
|
417
|
+
response = create_pool_v1_pools_post.sync(
|
|
418
|
+
client=self.client,
|
|
419
|
+
body=data
|
|
420
|
+
)
|
|
421
|
+
return ApiResponse(data=response)
|
|
422
|
+
except Exception as e:
|
|
423
|
+
return ApiResponse(error=e)
|
|
424
|
+
|
|
425
|
+
async def get(self, pool_id: str, include_machines: bool = False) -> ApiResponse:
|
|
426
|
+
"""Get a specific pool by ID.
|
|
427
|
+
|
|
428
|
+
Args:
|
|
429
|
+
pool_id: The pool ID
|
|
430
|
+
include_machines: Whether to include full machine details
|
|
431
|
+
|
|
432
|
+
Returns:
|
|
433
|
+
ApiResponse with PoolResponse or PoolWithMachines
|
|
434
|
+
"""
|
|
435
|
+
try:
|
|
436
|
+
response = await get_pool_v1_pools_pool_id_get.asyncio(
|
|
437
|
+
client=self.client,
|
|
438
|
+
pool_id=_to_uuid(pool_id),
|
|
439
|
+
include_machines=include_machines
|
|
440
|
+
)
|
|
441
|
+
return ApiResponse(data=response)
|
|
442
|
+
except Exception as e:
|
|
443
|
+
return ApiResponse(error=e)
|
|
444
|
+
|
|
445
|
+
def get_sync(self, pool_id: str, include_machines: bool = False) -> ApiResponse:
|
|
446
|
+
"""Get a specific pool by ID (synchronous).
|
|
447
|
+
|
|
448
|
+
Args:
|
|
449
|
+
pool_id: The pool ID
|
|
450
|
+
include_machines: Whether to include full machine details
|
|
451
|
+
|
|
452
|
+
Returns:
|
|
453
|
+
ApiResponse with PoolResponse or PoolWithMachines
|
|
454
|
+
"""
|
|
455
|
+
try:
|
|
456
|
+
response = get_pool_v1_pools_pool_id_get.sync(
|
|
457
|
+
client=self.client,
|
|
458
|
+
pool_id=_to_uuid(pool_id),
|
|
459
|
+
include_machines=include_machines
|
|
460
|
+
)
|
|
461
|
+
return ApiResponse(data=response)
|
|
462
|
+
except Exception as e:
|
|
463
|
+
return ApiResponse(error=e)
|
|
464
|
+
|
|
465
|
+
async def update(self, pool_id: str, data: PoolUpdate) -> ApiResponse:
|
|
466
|
+
"""Update a pool's details."""
|
|
467
|
+
try:
|
|
468
|
+
response = await update_pool_v1_pools_pool_id_patch.asyncio(
|
|
469
|
+
client=self.client,
|
|
470
|
+
pool_id=_to_uuid(pool_id),
|
|
471
|
+
body=data
|
|
472
|
+
)
|
|
473
|
+
return ApiResponse(data=response)
|
|
474
|
+
except Exception as e:
|
|
475
|
+
return ApiResponse(error=e)
|
|
476
|
+
|
|
477
|
+
def update_sync(self, pool_id: str, data: PoolUpdate) -> ApiResponse:
|
|
478
|
+
"""Update a pool's details (synchronous)."""
|
|
479
|
+
try:
|
|
480
|
+
response = update_pool_v1_pools_pool_id_patch.sync(
|
|
481
|
+
client=self.client,
|
|
482
|
+
pool_id=_to_uuid(pool_id),
|
|
483
|
+
body=data
|
|
484
|
+
)
|
|
485
|
+
return ApiResponse(data=response)
|
|
486
|
+
except Exception as e:
|
|
487
|
+
return ApiResponse(error=e)
|
|
488
|
+
|
|
489
|
+
async def delete(self, pool_id: str) -> ApiResponse:
|
|
490
|
+
"""Delete a pool. This will not delete the machines in the pool."""
|
|
491
|
+
try:
|
|
492
|
+
await delete_pool_v1_pools_pool_id_delete.asyncio(
|
|
493
|
+
client=self.client,
|
|
494
|
+
pool_id=_to_uuid(pool_id)
|
|
495
|
+
)
|
|
496
|
+
return ApiResponse(data={"success": True})
|
|
497
|
+
except Exception as e:
|
|
498
|
+
return ApiResponse(error=e)
|
|
499
|
+
|
|
500
|
+
def delete_sync(self, pool_id: str) -> ApiResponse:
|
|
501
|
+
"""Delete a pool. This will not delete the machines in the pool (synchronous)."""
|
|
502
|
+
try:
|
|
503
|
+
delete_pool_v1_pools_pool_id_delete.sync(
|
|
504
|
+
client=self.client,
|
|
505
|
+
pool_id=_to_uuid(pool_id)
|
|
506
|
+
)
|
|
507
|
+
return ApiResponse(data={"success": True})
|
|
508
|
+
except Exception as e:
|
|
509
|
+
return ApiResponse(error=e)
|
|
510
|
+
|
|
511
|
+
async def add_machines(self, pool_id: str, data: MachinePoolAssignment) -> ApiResponse:
|
|
512
|
+
"""Add machines to a pool.
|
|
513
|
+
|
|
514
|
+
Args:
|
|
515
|
+
pool_id: The pool ID
|
|
516
|
+
data: MachinePoolAssignment with machine_ids list
|
|
517
|
+
|
|
518
|
+
Returns:
|
|
519
|
+
ApiResponse with PoolWithMachines
|
|
520
|
+
"""
|
|
521
|
+
try:
|
|
522
|
+
response = await add_machines_to_pool_v1_pools_pool_id_machines_post.asyncio(
|
|
523
|
+
client=self.client,
|
|
524
|
+
pool_id=_to_uuid(pool_id),
|
|
525
|
+
body=data
|
|
526
|
+
)
|
|
527
|
+
return ApiResponse(data=response)
|
|
528
|
+
except Exception as e:
|
|
529
|
+
return ApiResponse(error=e)
|
|
530
|
+
|
|
531
|
+
def add_machines_sync(self, pool_id: str, data: MachinePoolAssignment) -> ApiResponse:
|
|
532
|
+
"""Add machines to a pool (synchronous).
|
|
533
|
+
|
|
534
|
+
Args:
|
|
535
|
+
pool_id: The pool ID
|
|
536
|
+
data: MachinePoolAssignment with machine_ids list
|
|
537
|
+
|
|
538
|
+
Returns:
|
|
539
|
+
ApiResponse with PoolWithMachines
|
|
540
|
+
"""
|
|
541
|
+
try:
|
|
542
|
+
response = add_machines_to_pool_v1_pools_pool_id_machines_post.sync(
|
|
543
|
+
client=self.client,
|
|
544
|
+
pool_id=_to_uuid(pool_id),
|
|
545
|
+
body=data
|
|
546
|
+
)
|
|
547
|
+
return ApiResponse(data=response)
|
|
548
|
+
except Exception as e:
|
|
549
|
+
return ApiResponse(error=e)
|
|
550
|
+
|
|
551
|
+
async def remove_machines(self, pool_id: str, data: MachinePoolAssignment) -> ApiResponse:
|
|
552
|
+
"""Remove machines from a pool.
|
|
553
|
+
|
|
554
|
+
Args:
|
|
555
|
+
pool_id: The pool ID
|
|
556
|
+
data: MachinePoolAssignment with machine_ids list
|
|
557
|
+
|
|
558
|
+
Returns:
|
|
559
|
+
ApiResponse with success status
|
|
560
|
+
"""
|
|
561
|
+
try:
|
|
562
|
+
await remove_machines_from_pool_v1_pools_pool_id_machines_delete.asyncio(
|
|
563
|
+
client=self.client,
|
|
564
|
+
pool_id=_to_uuid(pool_id),
|
|
565
|
+
body=data
|
|
566
|
+
)
|
|
567
|
+
return ApiResponse(data={"success": True})
|
|
568
|
+
except Exception as e:
|
|
569
|
+
return ApiResponse(error=e)
|
|
570
|
+
|
|
571
|
+
def remove_machines_sync(self, pool_id: str, data: MachinePoolAssignment) -> ApiResponse:
|
|
572
|
+
"""Remove machines from a pool (synchronous).
|
|
573
|
+
|
|
574
|
+
Args:
|
|
575
|
+
pool_id: The pool ID
|
|
576
|
+
data: MachinePoolAssignment with machine_ids list
|
|
577
|
+
|
|
578
|
+
Returns:
|
|
579
|
+
ApiResponse with success status
|
|
580
|
+
"""
|
|
581
|
+
try:
|
|
582
|
+
remove_machines_from_pool_v1_pools_pool_id_machines_delete.sync(
|
|
583
|
+
client=self.client,
|
|
584
|
+
pool_id=_to_uuid(pool_id),
|
|
585
|
+
body=data
|
|
586
|
+
)
|
|
587
|
+
return ApiResponse(data={"success": True})
|
|
588
|
+
except Exception as e:
|
|
589
|
+
return ApiResponse(error=e)
|
|
273
590
|
|
|
274
591
|
|
|
275
592
|
class WorkflowsAPI:
|
|
@@ -444,7 +761,19 @@ class RunsAPI:
|
|
|
444
761
|
return ApiResponse(error=e)
|
|
445
762
|
|
|
446
763
|
async def create(self, data: RunCreate) -> ApiResponse:
|
|
447
|
-
"""Create a new run.
|
|
764
|
+
"""Create a new run.
|
|
765
|
+
|
|
766
|
+
Args:
|
|
767
|
+
data: RunCreate object with:
|
|
768
|
+
- workflow_id: The workflow to run
|
|
769
|
+
- machine_id: Optional specific machine ID
|
|
770
|
+
- pool_ids: Optional list of pool IDs (machine must be in ALL specified pools)
|
|
771
|
+
- input_values: Optional input values for workflow variables
|
|
772
|
+
- file_inputs: Optional files to upload to the machine
|
|
773
|
+
|
|
774
|
+
Returns:
|
|
775
|
+
ApiResponse with RunResponse
|
|
776
|
+
"""
|
|
448
777
|
try:
|
|
449
778
|
response = await create_run_v1_runs_post.asyncio(
|
|
450
779
|
client=self.client,
|
|
@@ -455,7 +784,19 @@ class RunsAPI:
|
|
|
455
784
|
return ApiResponse(error=e)
|
|
456
785
|
|
|
457
786
|
def create_sync(self, data: RunCreate) -> ApiResponse:
|
|
458
|
-
"""Create a new run (synchronous).
|
|
787
|
+
"""Create a new run (synchronous).
|
|
788
|
+
|
|
789
|
+
Args:
|
|
790
|
+
data: RunCreate object with:
|
|
791
|
+
- workflow_id: The workflow to run
|
|
792
|
+
- machine_id: Optional specific machine ID
|
|
793
|
+
- pool_ids: Optional list of pool IDs (machine must be in ALL specified pools)
|
|
794
|
+
- input_values: Optional input values for workflow variables
|
|
795
|
+
- file_inputs: Optional files to upload to the machine
|
|
796
|
+
|
|
797
|
+
Returns:
|
|
798
|
+
ApiResponse with RunResponse
|
|
799
|
+
"""
|
|
459
800
|
try:
|
|
460
801
|
response = create_run_v1_runs_post.sync(
|
|
461
802
|
client=self.client,
|
|
@@ -542,8 +883,13 @@ class RunsAPI:
|
|
|
542
883
|
- Returns immediately with created run details
|
|
543
884
|
|
|
544
885
|
Args:
|
|
545
|
-
data: RunBulkCreate object containing
|
|
546
|
-
|
|
886
|
+
data: RunBulkCreate object containing:
|
|
887
|
+
- workflow_id: The workflow to run
|
|
888
|
+
- machine_id: Optional specific machine ID
|
|
889
|
+
- pool_ids: Optional list of pool IDs (machine must be in ALL specified pools)
|
|
890
|
+
- input_values: Optional input values for workflow variables
|
|
891
|
+
- file_inputs: Optional files to upload to the machine
|
|
892
|
+
- count: Number of runs to create (max 1000)
|
|
547
893
|
|
|
548
894
|
Returns:
|
|
549
895
|
ApiResponse with RunBulkCreateResponse containing:
|
|
@@ -569,8 +915,13 @@ class RunsAPI:
|
|
|
569
915
|
- Returns immediately with created run details
|
|
570
916
|
|
|
571
917
|
Args:
|
|
572
|
-
data: RunBulkCreate object containing
|
|
573
|
-
|
|
918
|
+
data: RunBulkCreate object containing:
|
|
919
|
+
- workflow_id: The workflow to run
|
|
920
|
+
- machine_id: Optional specific machine ID
|
|
921
|
+
- pool_ids: Optional list of pool IDs (machine must be in ALL specified pools)
|
|
922
|
+
- input_values: Optional input values for workflow variables
|
|
923
|
+
- file_inputs: Optional files to upload to the machine
|
|
924
|
+
- count: Number of runs to create (max 1000)
|
|
574
925
|
|
|
575
926
|
Returns:
|
|
576
927
|
ApiResponse with RunBulkCreateResponse containing:
|
|
@@ -1173,6 +1524,7 @@ class CyberdeskClient:
|
|
|
1173
1524
|
|
|
1174
1525
|
# Initialize API endpoints
|
|
1175
1526
|
self.machines = MachinesAPI(self._client)
|
|
1527
|
+
self.pools = PoolsAPI(self._client)
|
|
1176
1528
|
self.workflows = WorkflowsAPI(self._client)
|
|
1177
1529
|
self.runs = RunsAPI(self._client)
|
|
1178
1530
|
self.connections = ConnectionsAPI(self._client)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
cyberdesk/__init__.py,sha256=
|
|
2
|
-
cyberdesk/client.py,sha256=
|
|
3
|
-
cyberdesk-2.
|
|
1
|
+
cyberdesk/__init__.py,sha256=LDnOjNlOAyCgJyfbi3tJb33gX4LZd6fWsl4u1Lbi9Uk,1157
|
|
2
|
+
cyberdesk/client.py,sha256=GJdoZ8XS2xaQt6zMJY0JlYVpk_CDhmPRusFBvGuE0uk,56793
|
|
3
|
+
cyberdesk-2.1.0.dist-info/licenses/LICENSE,sha256=06Op63FCwGhuUOz__M8IZW5sxd29WxyGC4X5-Uih7IQ,1071
|
|
4
4
|
openapi_client/cyberdesk_cloud_client/__init__.py,sha256=r_uVkNUL-SOK8j7-KiGMIKdinES5X8K1Q250ySX2F-A,158
|
|
5
5
|
openapi_client/cyberdesk_cloud_client/client.py,sha256=o_mdLqyBCQstu5tS1WZFwqIEbGwkvWQ7eQjuCJw_5VY,12419
|
|
6
6
|
openapi_client/cyberdesk_cloud_client/errors.py,sha256=gO8GBmKqmSNgAg-E5oT-oOyxztvp7V_6XG7OUTT15q0,546
|
|
@@ -34,9 +34,19 @@ openapi_client/cyberdesk_cloud_client/api/health/health_check_v1_health_get.py,s
|
|
|
34
34
|
openapi_client/cyberdesk_cloud_client/api/machines/__init__.py,sha256=5vd9uJWAjRqa9xzxzYkLD1yoZ12Ld_bAaNB5WX4fbE8,56
|
|
35
35
|
openapi_client/cyberdesk_cloud_client/api/machines/create_machine_v1_machines_post.py,sha256=4AxFmCuNy7Hqcua9TCeK67-BSXmUTIJ1iVYPVr4_dPs,4795
|
|
36
36
|
openapi_client/cyberdesk_cloud_client/api/machines/delete_machine_v1_machines_machine_id_delete.py,sha256=-P8TqtFvPBL47vjx6cpaFNugHGOWirzSHPMzJxHCT1w,4584
|
|
37
|
+
openapi_client/cyberdesk_cloud_client/api/machines/get_machine_pools_v1_machines_machine_id_pools_get.py,sha256=oqAf2YGONto0zV9pB3fnBX3B9S6fSKGmO5Y7V0nI6jY,4548
|
|
37
38
|
openapi_client/cyberdesk_cloud_client/api/machines/get_machine_v1_machines_machine_id_get.py,sha256=ygavJyYWH59YYO9nwjWItmjYxNf3-jer138RUqscFpM,4502
|
|
38
39
|
openapi_client/cyberdesk_cloud_client/api/machines/list_machines_v1_machines_get.py,sha256=fD9qvJ4MwjrZPqCDRwLO0dy7emSNSczXTSrplx_TjWE,6499
|
|
40
|
+
openapi_client/cyberdesk_cloud_client/api/machines/update_machine_pools_v1_machines_machine_id_pools_put.py,sha256=L7EUPJh-f3fLlIp7j7D6TDriKG2SzjlT7XCkhx3HkrU,5363
|
|
39
41
|
openapi_client/cyberdesk_cloud_client/api/machines/update_machine_v1_machines_machine_id_patch.py,sha256=8dqEUZaTMLAIbDSrZ7lzAHsU_CecWkzpoSwVoZ5aTMk,5446
|
|
42
|
+
openapi_client/cyberdesk_cloud_client/api/pools/__init__.py,sha256=5vd9uJWAjRqa9xzxzYkLD1yoZ12Ld_bAaNB5WX4fbE8,56
|
|
43
|
+
openapi_client/cyberdesk_cloud_client/api/pools/add_machines_to_pool_v1_pools_pool_id_machines_post.py,sha256=obWOLy7jQbLwBJbX-OJ6U_ZhXgr24bXmZRqJzIJTKas,5008
|
|
44
|
+
openapi_client/cyberdesk_cloud_client/api/pools/create_pool_v1_pools_post.py,sha256=7dacQgMIDSE1OBFcUwNr1hzFRQUoVZDRzf6tIRdEnDQ,4488
|
|
45
|
+
openapi_client/cyberdesk_cloud_client/api/pools/delete_pool_v1_pools_pool_id_delete.py,sha256=GrDOSy5HGqxVoL2qqoSXoWZMMU4Uf4ZEZbDBLjbcSwQ,4123
|
|
46
|
+
openapi_client/cyberdesk_cloud_client/api/pools/get_pool_v1_pools_pool_id_get.py,sha256=JQkIa23YTrmhUQRtEueEjbQbzN5w8yhXHOjhIuVyq40,5188
|
|
47
|
+
openapi_client/cyberdesk_cloud_client/api/pools/list_pools_v1_pools_get.py,sha256=55jaNqNdq2rCgXOgW8DWYlFY2BR5yPSdIlXdZvC8A0I,5190
|
|
48
|
+
openapi_client/cyberdesk_cloud_client/api/pools/remove_machines_from_pool_v1_pools_pool_id_machines_delete.py,sha256=n001tZg1wVFKQIzqWicFsQ-lP5G_H6mM7UooPDMMrlY,4839
|
|
49
|
+
openapi_client/cyberdesk_cloud_client/api/pools/update_pool_v1_pools_pool_id_patch.py,sha256=-_6txdkWzTQGHW3IkAB6TgyfqOYb599siPbyQhtGLgc,4745
|
|
40
50
|
openapi_client/cyberdesk_cloud_client/api/request_logs/__init__.py,sha256=5vd9uJWAjRqa9xzxzYkLD1yoZ12Ld_bAaNB5WX4fbE8,56
|
|
41
51
|
openapi_client/cyberdesk_cloud_client/api/request_logs/create_request_log_v1_request_logs_post.py,sha256=pYWsEho0fFAik-XtQmLXky1KAYMSvM-kozREYW3NYcc,5157
|
|
42
52
|
openapi_client/cyberdesk_cloud_client/api/request_logs/delete_request_log_v1_request_logs_log_id_delete.py,sha256=8HWp4-MCAG77-R0-i3Joi0unfCCLtasMjJUpf6KiFG0,4500
|
|
@@ -74,7 +84,7 @@ openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_v1_workflows_wo
|
|
|
74
84
|
openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_versions_v1_workflows_workflow_id_versions_get.py,sha256=ax_5V-lIClvOxr50eXSIAPbyhWP-cS4a4DXzwdxkVYs,5889
|
|
75
85
|
openapi_client/cyberdesk_cloud_client/api/workflows/list_workflows_v1_workflows_get.py,sha256=uubsZpnk8T9NGpx0IFmSkPOpIg3ozBCeZ_ms2D1yZ2c,5658
|
|
76
86
|
openapi_client/cyberdesk_cloud_client/api/workflows/update_workflow_v1_workflows_workflow_id_patch.py,sha256=K_tuO6s_FyM8MUOck5AuX_RNIeYqCQcfYx1aDg9xwhE,5737
|
|
77
|
-
openapi_client/cyberdesk_cloud_client/models/__init__.py,sha256=
|
|
87
|
+
openapi_client/cyberdesk_cloud_client/models/__init__.py,sha256=0ugs0zih1w9kwt_QLTVvvaEsPMioEojAgMJ0RfLKRS0,8891
|
|
78
88
|
openapi_client/cyberdesk_cloud_client/models/attachment_type.py,sha256=zqPOsSd2AmxGNqb5HQ6ZYBAYL8k-0UbWHhfAJYNHoro,161
|
|
79
89
|
openapi_client/cyberdesk_cloud_client/models/connection_create.py,sha256=gCI36DmjJDZxzGFPbykyYw9k4QEf_4dVNz9b-xZfLo4,3288
|
|
80
90
|
openapi_client/cyberdesk_cloud_client/models/connection_response.py,sha256=aFxqJX75wSEw5dZ-kvh3Wgv_haJ6xYJ7o72vSAbEtHY,5247
|
|
@@ -93,7 +103,9 @@ openapi_client/cyberdesk_cloud_client/models/http_validation_error.py,sha256=OvQ
|
|
|
93
103
|
openapi_client/cyberdesk_cloud_client/models/keyboard_key_request.py,sha256=iZ2uFo_pgZ59xX04hJZpl49dfVLqTchtAYVUWZX8MEM,1475
|
|
94
104
|
openapi_client/cyberdesk_cloud_client/models/keyboard_type_request.py,sha256=Jgzt14kcl8kfdEJYI3BSnHgxVbFnUIUjBQDF1ly-vIY,1480
|
|
95
105
|
openapi_client/cyberdesk_cloud_client/models/machine_create.py,sha256=WiSBX-7Sx73C0jVHc6dhl4E0pWQNE2RrJ9DZ3gljZQ4,4449
|
|
96
|
-
openapi_client/cyberdesk_cloud_client/models/
|
|
106
|
+
openapi_client/cyberdesk_cloud_client/models/machine_pool_assignment.py,sha256=oTctHGs4FQsdRvhc_evjC13vewhiQsaohsztMSWXJ9Q,2011
|
|
107
|
+
openapi_client/cyberdesk_cloud_client/models/machine_pool_update.py,sha256=K1ax3OmPZj2t-VlQ0CsRWYuTR667fBTXsT8hJkZXcWU,1935
|
|
108
|
+
openapi_client/cyberdesk_cloud_client/models/machine_response.py,sha256=jY8g10HTS1bjnMs1ptBC4X__kexnDSPCxNilGN0OAgk,9001
|
|
97
109
|
openapi_client/cyberdesk_cloud_client/models/machine_status.py,sha256=mqKyXgK1wcaA2fI6iTo_tS7AMeuVrRN4yE21d2Lsq1I,200
|
|
98
110
|
openapi_client/cyberdesk_cloud_client/models/machine_update.py,sha256=906MebM_AUetLZtTyeoZ40TPMORx4yyZPHmJ_j_tg9A,6973
|
|
99
111
|
openapi_client/cyberdesk_cloud_client/models/mouse_click_request.py,sha256=GSBn4fg2sNnL4KQQHKly2YIzyRqbfwVgrQXpaalOUxg,3423
|
|
@@ -102,10 +114,15 @@ openapi_client/cyberdesk_cloud_client/models/mouse_position.py,sha256=t8PW-7xKfy
|
|
|
102
114
|
openapi_client/cyberdesk_cloud_client/models/paginated_response.py,sha256=P9bt0Koea8rODsULodX8dDAwm-uP2KRE1mRi8AK-VBY,1988
|
|
103
115
|
openapi_client/cyberdesk_cloud_client/models/paginated_response_connection_response.py,sha256=2WxYXSS1RoBeh2ealxdQeEBSv0pBpllar1m98toeYHs,2527
|
|
104
116
|
openapi_client/cyberdesk_cloud_client/models/paginated_response_machine_response.py,sha256=m_bJGQwSQkqPeJwcQ2UnXglhdmPqsj_tjjx_3S-YZyE,2491
|
|
117
|
+
openapi_client/cyberdesk_cloud_client/models/paginated_response_pool_response.py,sha256=rJQGR-sZwtLBc0ewSao8jh3zSQ89woADJa63mXa61UI,2455
|
|
105
118
|
openapi_client/cyberdesk_cloud_client/models/paginated_response_run_attachment_response.py,sha256=OHsnkYeV1_35TYMrYRaG0XxdjaBXp5Qcq64hbHxzjV4,2568
|
|
106
119
|
openapi_client/cyberdesk_cloud_client/models/paginated_response_run_response.py,sha256=UFk93224AiT0TkMlxxy5UiTUP94JeCxy1EYx55wECWk,2443
|
|
107
120
|
openapi_client/cyberdesk_cloud_client/models/paginated_response_trajectory_response.py,sha256=gOdLxB8NSEualTnfJ8ww7M7evX8HpPlRgtUS8cgJHy8,2527
|
|
108
121
|
openapi_client/cyberdesk_cloud_client/models/paginated_response_workflow_response.py,sha256=vjx7RtvrVv9hiE1CPNMdReyc4kKbbTdSEMfU0Z-jhK0,2503
|
|
122
|
+
openapi_client/cyberdesk_cloud_client/models/pool_create.py,sha256=2--HYAKZ32HV8fFFMg-yMPX0TsXA-rp3hpA1bnU63q8,2236
|
|
123
|
+
openapi_client/cyberdesk_cloud_client/models/pool_response.py,sha256=quYX1HHAMOeb4P0djQt95kEfz5fTjOtj3kRcyMwtuc8,4012
|
|
124
|
+
openapi_client/cyberdesk_cloud_client/models/pool_update.py,sha256=4sMBukgmfF7MyPNiNqXR2BHqSXwzaRjbOFDW4sHlEJ4,2677
|
|
125
|
+
openapi_client/cyberdesk_cloud_client/models/pool_with_machines.py,sha256=_SlD1SBYlQZvUvYAZbF_EShWfiCbnKMt7j0dmxqRG1M,4971
|
|
109
126
|
openapi_client/cyberdesk_cloud_client/models/power_shell_exec_request.py,sha256=LoFKZ1fUeW3NM-fxrAMhbplyEDC_wOWpOjEb2vOQbuQ,3543
|
|
110
127
|
openapi_client/cyberdesk_cloud_client/models/power_shell_session_request.py,sha256=2Ix3dnjljWXO6KuOTPCykkYJim1at0_vAu1dh4Dahcw,2361
|
|
111
128
|
openapi_client/cyberdesk_cloud_client/models/powershell_exec_v1_computer_machine_id_shell_powershell_exec_post_response_powershell_exec_v1_computer_machine_id_shell_powershell_exec_post.py,sha256=N496N5sS2XP1dqAvoB3EplU3Dxwtf867Vr8hhh315V8,1813
|
|
@@ -117,12 +134,12 @@ openapi_client/cyberdesk_cloud_client/models/run_attachment_create.py,sha256=w58
|
|
|
117
134
|
openapi_client/cyberdesk_cloud_client/models/run_attachment_download_url_response.py,sha256=CUeh3Zas29uwfpH5oMbQ_hhkpsZ_RH7ZA_RyfRsf8mY,1864
|
|
118
135
|
openapi_client/cyberdesk_cloud_client/models/run_attachment_response.py,sha256=_K4POw4eH_5wYbu8lqH1sHc3oMXFBDPtcqWfkBx3z68,7371
|
|
119
136
|
openapi_client/cyberdesk_cloud_client/models/run_attachment_update.py,sha256=rGXcB21waSTXG0-mt0XhNcwoJI1PhBpBDUkLfp8mM-0,2573
|
|
120
|
-
openapi_client/cyberdesk_cloud_client/models/run_bulk_create.py,sha256=
|
|
137
|
+
openapi_client/cyberdesk_cloud_client/models/run_bulk_create.py,sha256=nSMhD62M0kKgpSUTYq0l5WUHytB-p2a3-2Q4RHmxK-s,7908
|
|
121
138
|
openapi_client/cyberdesk_cloud_client/models/run_bulk_create_input_values_type_0.py,sha256=JxGOOYKueFx5NtvnXgf9z_sXbMByQrsjjQ3AmU8qG30,1305
|
|
122
139
|
openapi_client/cyberdesk_cloud_client/models/run_bulk_create_response.py,sha256=N9sMykvm6pC2fMMH_XVQI8wVc6-53qAHMb_qbNBo9-c,2886
|
|
123
|
-
openapi_client/cyberdesk_cloud_client/models/run_create.py,sha256=
|
|
140
|
+
openapi_client/cyberdesk_cloud_client/models/run_create.py,sha256=LPu8C9Ug65ZA2YKTwIWtJFpa7FXGp4OOYeQ7DN2WVDQ,7641
|
|
124
141
|
openapi_client/cyberdesk_cloud_client/models/run_create_input_values_type_0.py,sha256=APV4O0GduU3fhHoJHMMOBk-h92Hf21c1ZU-pIsJoZpg,1282
|
|
125
|
-
openapi_client/cyberdesk_cloud_client/models/run_response.py,sha256=
|
|
142
|
+
openapi_client/cyberdesk_cloud_client/models/run_response.py,sha256=H9rKD3JYcOy8Lp_IB6eOYXw5Nx7K11wRNVi4xJZ_NuU,13779
|
|
126
143
|
openapi_client/cyberdesk_cloud_client/models/run_response_input_values_type_0.py,sha256=NpMqT3qaMrLGA7mHBjvtS1fnMGc5zxwWLoFWunjjupA,1292
|
|
127
144
|
openapi_client/cyberdesk_cloud_client/models/run_response_output_data_type_0.py,sha256=rO4YJAa26G_83CFtBTQ_ZKCURAxNS7PcvdKbfuvDcrA,1287
|
|
128
145
|
openapi_client/cyberdesk_cloud_client/models/run_response_run_message_history_type_0_item.py,sha256=3x1N3yi3kyc1que3bizmHEuGBn5s7pEirEg4TgBV9FU,1348
|
|
@@ -146,7 +163,7 @@ openapi_client/cyberdesk_cloud_client/models/workflow_create.py,sha256=Z7XG8k1js
|
|
|
146
163
|
openapi_client/cyberdesk_cloud_client/models/workflow_response.py,sha256=Z4ABOHurTjNfQh1odBbEZ5YW3agm63QklKdE-gzu6dQ,8539
|
|
147
164
|
openapi_client/cyberdesk_cloud_client/models/workflow_response_old_versions_type_0_item.py,sha256=W9AxxlBlN3rUwLDcoUx5H7MUiYA9UztfX9iEpNGlgAs,1340
|
|
148
165
|
openapi_client/cyberdesk_cloud_client/models/workflow_update.py,sha256=_zMo2mJbYdKILygBXwebAD37SJJCUZOTkJkMOCzeNTA,4439
|
|
149
|
-
cyberdesk-2.
|
|
150
|
-
cyberdesk-2.
|
|
151
|
-
cyberdesk-2.
|
|
152
|
-
cyberdesk-2.
|
|
166
|
+
cyberdesk-2.1.0.dist-info/METADATA,sha256=M6-y0V107h3PXcoxREbAilLffXT9lsO4NxVsdB8F7vY,6791
|
|
167
|
+
cyberdesk-2.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
168
|
+
cyberdesk-2.1.0.dist-info/top_level.txt,sha256=qTYHZHVHh3VClNPQsiFFA8p8tmJgFGhq9G1COd-pX_A,25
|
|
169
|
+
cyberdesk-2.1.0.dist-info/RECORD,,
|