peak-sdk 1.9.0__py3-none-any.whl → 1.10.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.
Files changed (33) hide show
  1. peak/_version.py +1 -1
  2. peak/cli/press/blocks/specs.py +252 -7
  3. peak/cli/resources/workflows.py +320 -18
  4. peak/press/blocks.py +305 -1
  5. peak/resources/workflows.py +476 -8
  6. peak/sample_yaml/press/blocks/specs/workflow/create_block_spec.yaml +49 -1
  7. peak/sample_yaml/press/blocks/specs/workflow/create_block_spec_release.yaml +49 -1
  8. peak/sample_yaml/resources/images/dockerfile/create_image.yaml +2 -2
  9. peak/sample_yaml/resources/images/dockerfile/create_image_version.yaml +1 -1
  10. peak/sample_yaml/resources/images/dockerfile/update_version.yaml +1 -1
  11. peak/sample_yaml/resources/images/github/create_image.yaml +1 -1
  12. peak/sample_yaml/resources/images/github/create_image_version.yaml +1 -1
  13. peak/sample_yaml/resources/images/github/update_version.yaml +1 -1
  14. peak/sample_yaml/resources/images/upload/create_image.yaml +3 -3
  15. peak/sample_yaml/resources/images/upload/create_image_version.yaml +4 -4
  16. peak/sample_yaml/resources/images/upload/create_or_update_image.yaml +4 -4
  17. peak/sample_yaml/resources/images/upload/update_version.yaml +4 -4
  18. peak/sample_yaml/resources/services/test_service.yaml +1 -1
  19. peak/sample_yaml/resources/workflows/create_or_update_workflow.yaml +36 -3
  20. peak/sample_yaml/resources/workflows/create_workflow.yaml +33 -4
  21. peak/sample_yaml/resources/workflows/patch_workflow.yaml +16 -4
  22. peak/sample_yaml/resources/workflows/update_workflow.yaml +35 -2
  23. peak/sample_yaml/resources/workflows/workflow_auto_retry.yaml +59 -12
  24. peak/sample_yaml/resources/workflows/workflow_execution_parameters.yaml +75 -10
  25. peak/sample_yaml/resources/workflows/workflow_input_parameters.yaml +42 -2
  26. peak/sample_yaml/resources/workflows/workflow_input_parameters_inherit.yaml +64 -0
  27. peak/sample_yaml/resources/workflows/workflow_output_parameters.yaml +20 -3
  28. peak/sample_yaml/resources/workflows/workflow_skippable_steps.yaml +45 -12
  29. {peak_sdk-1.9.0.dist-info → peak_sdk-1.10.0.dist-info}/METADATA +1 -1
  30. {peak_sdk-1.9.0.dist-info → peak_sdk-1.10.0.dist-info}/RECORD +33 -32
  31. {peak_sdk-1.9.0.dist-info → peak_sdk-1.10.0.dist-info}/LICENSE +0 -0
  32. {peak_sdk-1.9.0.dist-info → peak_sdk-1.10.0.dist-info}/WHEEL +0 -0
  33. {peak_sdk-1.9.0.dist-info → peak_sdk-1.10.0.dist-info}/entry_points.txt +0 -0
@@ -133,7 +133,7 @@ class Workflow(BaseClient):
133
133
  )
134
134
 
135
135
  def create_workflow(self: Workflow, body: Dict[str, Any]) -> Dict[str, int]:
136
- """Create a new workflow. Workflows with only standard steps are supported.
136
+ """Create a new workflow.
137
137
 
138
138
  REFERENCE:
139
139
  🔗 `API Documentation <https://service.peak.ai/workflows/api-docs/index.htm#/Workflows/create-workflow>`__
@@ -208,7 +208,7 @@ class Workflow(BaseClient):
208
208
  ],
209
209
  "steps": {
210
210
  "stepName": {
211
- "type": "string",
211
+ "type": "standard",
212
212
  "imageId": "number",
213
213
  "imageVersionId": "number",
214
214
  "command": "string",
@@ -228,6 +228,75 @@ class Workflow(BaseClient):
228
228
  "env": {
229
229
  "key (string)": "value (string)"
230
230
  },
231
+ "inherit": {
232
+ "key (string)": "value (string)"
233
+ },
234
+ "secrets": [],
235
+ },
236
+ "outputParameters": {
237
+ "key (string)": "value (string)"
238
+ },
239
+ "executionParameters": {
240
+ "conditional": [
241
+ {
242
+ "condition": "string",
243
+ "paramName": "string",
244
+ "stepName": "string",
245
+ "value": "string"
246
+ }
247
+ ],
248
+ "parentStatus": [
249
+ {
250
+ "condition": "string",
251
+ "parents": [],
252
+ "status": []
253
+ }
254
+ ]
255
+ },
256
+ "runConfiguration": {
257
+ "retryOptions": {
258
+ "duration": "number",
259
+ "exitCodes": [],
260
+ "exponentialBackoff": "boolean",
261
+ "numberOfRetries": "number"
262
+ },
263
+ "skipConfiguration": {
264
+ "skip": "boolean",
265
+ "skipDAG": "boolean",
266
+ }
267
+ }
268
+ },
269
+ "stepName2": {
270
+ "type": "http",
271
+ "method": "enum(get, post, put, patch, delete)",
272
+ "url": "string",
273
+ "payload": "string",
274
+ "headers": {
275
+ "absolute": {
276
+ "key (string)": "value (string)"
277
+ },
278
+ "secrets": {
279
+ "key (string)": "value (string)"
280
+ }
281
+ },
282
+ "auth": {
283
+ "type": "enum(no-auth, oauth, basic, api-key, bearer-token)(required)",
284
+ "clientId": "string | required for oauth",
285
+ "clientSecret": "string | required for oauth",
286
+ "authUrl": "string | required for oauth",
287
+ "username": "string | required for basic",
288
+ "password": "string | required for basic",
289
+ "apiKey": "string | required for api-key",
290
+ "bearerToken": "string | required for bearer-token"
291
+ },
292
+ "parents": [],
293
+ "parameters": {
294
+ "env": {
295
+ "key (string)": "value (string)"
296
+ },
297
+ "inherit": {
298
+ "key (string)": "value (string)"
299
+ },
231
300
  "secrets": [],
232
301
  },
233
302
  "outputParameters": {
@@ -262,6 +331,92 @@ class Workflow(BaseClient):
262
331
  "skipDAG": "boolean",
263
332
  }
264
333
  }
334
+ },
335
+ "stepName3": {
336
+ "type": "export",
337
+ "schema": "string (required)",
338
+ "table": "string (required)",
339
+ "sortBy": "string (required)",
340
+ "sortOrder": "enum(asc, desc) | Default is asc",
341
+ "compression": "boolean | Default is false",
342
+ "parents": [],
343
+ "executionParameters": {
344
+ "conditional": [
345
+ {
346
+ "condition": "string",
347
+ "paramName": "string",
348
+ "stepName": "string",
349
+ "value": "string"
350
+ }
351
+ ],
352
+ "parentStatus": [
353
+ {
354
+ "condition": "string",
355
+ "parents": [],
356
+ "status": []
357
+ }
358
+ ]
359
+ },
360
+ "runConfiguration": {
361
+ "retryOptions": {
362
+ "duration": "number",
363
+ "exitCodes": [],
364
+ "exponentialBackoff": "boolean",
365
+ "numberOfRetries": "number"
366
+ },
367
+ "skipConfiguration": {
368
+ "skip": "boolean",
369
+ "skipDAG": "boolean",
370
+ }
371
+ }
372
+ },
373
+ "stepName4": {
374
+ "type": "sql",
375
+ "sqlQueryPath": "string",
376
+ "repository": {
377
+ "branch": "string | Required if repository is provided",
378
+ "token": "string",
379
+ "url": "string | Required if repository is provided",
380
+ "filePath": "string | Required if repository is provided"
381
+ }
382
+ "parents": [],
383
+ "parameters": {
384
+ "env": {
385
+ "key (string)": "value (string)"
386
+ },
387
+ "inherit": {
388
+ "key (string)": "value (string)"
389
+ }
390
+ },
391
+ "executionParameters": {
392
+ "conditional": [
393
+ {
394
+ "condition": "string",
395
+ "paramName": "string",
396
+ "stepName": "string",
397
+ "value": "string"
398
+ }
399
+ ],
400
+ "parentStatus": [
401
+ {
402
+ "condition": "string",
403
+ "parents": [],
404
+ "status": []
405
+ }
406
+ ]
407
+ },
408
+ "runConfiguration": {
409
+ "retryOptions": {
410
+ "duration": "number",
411
+ "exitCodes": [],
412
+ "exponentialBackoff": "boolean",
413
+ "numberOfRetries": "number"
414
+ },
415
+ "skipConfiguration": {
416
+ "skip": "boolean",
417
+ "skipDAG": "boolean",
418
+ }
419
+ }
265
420
  }
266
421
  }
267
422
  }
@@ -357,7 +512,7 @@ class Workflow(BaseClient):
357
512
  ],
358
513
  "steps": {
359
514
  "stepName": {
360
- "type": "string",
515
+ "type": "http",
361
516
  "imageId": "number",
362
517
  "imageVersionId": "number",
363
518
  "command": "string",
@@ -377,6 +532,75 @@ class Workflow(BaseClient):
377
532
  "env": {
378
533
  "key (string)": "value (string)"
379
534
  },
535
+ "inherit": {
536
+ "key (string)": "value (string)"
537
+ },
538
+ "secrets": [],
539
+ },
540
+ "outputParameters": {
541
+ "key (string)": "value (string)"
542
+ },
543
+ "executionParameters": {
544
+ "conditional": [
545
+ {
546
+ "condition": "string",
547
+ "paramName": "string",
548
+ "stepName": "string",
549
+ "value": "string"
550
+ }
551
+ ],
552
+ "parentStatus": [
553
+ {
554
+ "condition": "string",
555
+ "parents": [],
556
+ "status": []
557
+ }
558
+ ]
559
+ },
560
+ "runConfiguration": {
561
+ "retryOptions": {
562
+ "duration": "number",
563
+ "exitCodes": [],
564
+ "exponentialBackoff": "boolean",
565
+ "numberOfRetries": "number"
566
+ },
567
+ "skipConfiguration": {
568
+ "skip": "boolean",
569
+ "skipDAG": "boolean",
570
+ }
571
+ }
572
+ },
573
+ "stepName2": {
574
+ "type": "http",
575
+ "method": "enum(get, post, put, patch, delete)(required)",
576
+ "url": "string(required)",
577
+ "payload": "string",
578
+ "headers": {
579
+ "absolute": {
580
+ "key (string)": "value (string)"
581
+ },
582
+ "secrets": {
583
+ "key (string)": "value (string)"
584
+ }
585
+ },
586
+ "auth": {
587
+ "type": "enum(no-auth, oauth, basic, api-key, bearer-token)",
588
+ "clientId": "string | required for oauth",
589
+ "clientSecret": "string | required for oauth",
590
+ "authUrl": "string | required for oauth",
591
+ "username": "string | required for basic",
592
+ "password": "string | required for basic",
593
+ "apiKey": "string | required for api-key",
594
+ "bearerToken": "string | required for bearer-token"
595
+ },
596
+ "parents": [],
597
+ "parameters": {
598
+ "env": {
599
+ "key (string)": "value (string)"
600
+ },
601
+ "inherit": {
602
+ "key (string)": "value (string)"
603
+ },
380
604
  "secrets": [],
381
605
  },
382
606
  "outputParameters": {
@@ -411,6 +635,92 @@ class Workflow(BaseClient):
411
635
  "skipDAG": "boolean",
412
636
  }
413
637
  }
638
+ },
639
+ "stepName3": {
640
+ "type": "export",
641
+ "schema": "string (required)",
642
+ "table": "string (required)",
643
+ "sortBy": "string (required)",
644
+ "sortOrder": "enum(asc, desc) | Default is asc",
645
+ "compression": "boolean | Default is false",
646
+ "parents": [],
647
+ "executionParameters": {
648
+ "conditional": [
649
+ {
650
+ "condition": "string",
651
+ "paramName": "string",
652
+ "stepName": "string",
653
+ "value": "string"
654
+ }
655
+ ],
656
+ "parentStatus": [
657
+ {
658
+ "condition": "string",
659
+ "parents": [],
660
+ "status": []
661
+ }
662
+ ]
663
+ },
664
+ "runConfiguration": {
665
+ "retryOptions": {
666
+ "duration": "number",
667
+ "exitCodes": [],
668
+ "exponentialBackoff": "boolean",
669
+ "numberOfRetries": "number"
670
+ },
671
+ "skipConfiguration": {
672
+ "skip": "boolean",
673
+ "skipDAG": "boolean",
674
+ }
675
+ }
676
+ },
677
+ "stepName4": {
678
+ "type": "sql",
679
+ "sqlQueryPath": "string",
680
+ "repository": {
681
+ "branch": "string | Required if repository is provided",
682
+ "token": "string",
683
+ "url": "string | Required if repository is provided",
684
+ "filePath": "string | Required if repository is provided"
685
+ }
686
+ "parents": [],
687
+ "parameters": {
688
+ "env": {
689
+ "key (string)": "value (string)"
690
+ },
691
+ "inherit": {
692
+ "key (string)": "value (string)"
693
+ }
694
+ },
695
+ "executionParameters": {
696
+ "conditional": [
697
+ {
698
+ "condition": "string",
699
+ "paramName": "string",
700
+ "stepName": "string",
701
+ "value": "string"
702
+ }
703
+ ],
704
+ "parentStatus": [
705
+ {
706
+ "condition": "string",
707
+ "parents": [],
708
+ "status": []
709
+ }
710
+ ]
711
+ },
712
+ "runConfiguration": {
713
+ "retryOptions": {
714
+ "duration": "number",
715
+ "exitCodes": [],
716
+ "exponentialBackoff": "boolean",
717
+ "numberOfRetries": "number"
718
+ },
719
+ "skipConfiguration": {
720
+ "skip": "boolean",
721
+ "skipDAG": "boolean",
722
+ }
723
+ }
414
724
  }
415
725
  }
416
726
  }
@@ -441,7 +751,7 @@ class Workflow(BaseClient):
441
751
  self: Workflow,
442
752
  workflow_id: int,
443
753
  ) -> Dict[str, Any]:
444
- """Retrieve details of a specific workflow. Workflows with only standard steps can be described.
754
+ """Retrieve details of a specific workflow.
445
755
 
446
756
  REFERENCE:
447
757
  🔗 `API Documentation <https://service.peak.ai/workflows/api-docs/index.htm#/Workflows/describe-workflow>`__
@@ -469,7 +779,7 @@ class Workflow(BaseClient):
469
779
  )
470
780
 
471
781
  def update_workflow(self: Workflow, workflow_id: int, body: Dict[str, Any]) -> Dict[str, Any]:
472
- """Update an existing workflow. Workflows with only standard steps are supported.
782
+ """Update an existing workflow.
473
783
 
474
784
  REFERENCE:
475
785
  🔗 `API Documentation <https://service.peak.ai/workflows/api-docs/index.htm#/Workflows/update-workflow>`__
@@ -545,7 +855,7 @@ class Workflow(BaseClient):
545
855
  ],
546
856
  "steps": {
547
857
  "stepName": {
548
- "type": "string",
858
+ "type": "standard",
549
859
  "imageId": "number",
550
860
  "imageVersionId": "number",
551
861
  "command": "string",
@@ -565,6 +875,75 @@ class Workflow(BaseClient):
565
875
  "env": {
566
876
  "key (string)": "value (string)"
567
877
  },
878
+ "inherit": {
879
+ "key (string)": "value (string)"
880
+ },
881
+ "secrets": [],
882
+ },
883
+ "outputParameters": {
884
+ "key (string)": "value (string)"
885
+ },
886
+ "executionParameters": {
887
+ "conditional": [
888
+ {
889
+ "condition": "string",
890
+ "paramName": "string",
891
+ "stepName": "string",
892
+ "value": "string"
893
+ }
894
+ ],
895
+ "parentStatus": [
896
+ {
897
+ "condition": "string",
898
+ "parents": [],
899
+ "status": []
900
+ }
901
+ ]
902
+ },
903
+ "runConfiguration": {
904
+ "retryOptions": {
905
+ "duration": "number",
906
+ "exitCodes": [],
907
+ "exponentialBackoff": "boolean",
908
+ "numberOfRetries": "number"
909
+ },
910
+ "skipConfiguration": {
911
+ "skip": "boolean",
912
+ "skipDAG": "boolean",
913
+ }
914
+ }
915
+ },
916
+ "stepName2": {
917
+ "type": "http",
918
+ "method": "enum(get, post, put, patch, delete)(required)",
919
+ "url": "string(required)",
920
+ "payload": "string",
921
+ "headers": {
922
+ "absolute": {
923
+ "key (string)": "value (string)"
924
+ },
925
+ "secrets": {
926
+ "key (string)": "value (string)"
927
+ }
928
+ },
929
+ "auth": {
930
+ "type": "enum(no-auth, oauth, basic, api-key, bearer-token)(required)",
931
+ "clientId": "string | required for oauth",
932
+ "clientSecret": "string | required for oauth",
933
+ "authUrl": "string | required for oauth",
934
+ "username": "string | required for basic",
935
+ "password": "string | required for basic",
936
+ "apiKey": "string | required for api-key",
937
+ "bearerToken": "string | required for bearer-token"
938
+ },
939
+ "parents": [],
940
+ "parameters": {
941
+ "env": {
942
+ "key (string)": "value (string)"
943
+ },
944
+ "inherit": {
945
+ "key (string)": "value (string)"
946
+ },
568
947
  "secrets": [],
569
948
  },
570
949
  "outputParameters": {
@@ -599,6 +978,92 @@ class Workflow(BaseClient):
599
978
  "skipDAG": "boolean",
600
979
  }
601
980
  }
981
+ },
982
+ "stepName3": {
983
+ "type": "export",
984
+ "schema": "string (required)",
985
+ "table": "string (required)",
986
+ "sortBy": "string (required)",
987
+ "sortOrder": "enum(asc, desc) | Default is asc",
988
+ "compression": "boolean | Default is false",
989
+ "parents": [],
990
+ "executionParameters": {
991
+ "conditional": [
992
+ {
993
+ "condition": "string",
994
+ "paramName": "string",
995
+ "stepName": "string",
996
+ "value": "string"
997
+ }
998
+ ],
999
+ "parentStatus": [
1000
+ {
1001
+ "condition": "string",
1002
+ "parents": [],
1003
+ "status": []
1004
+ }
1005
+ ]
1006
+ },
1007
+ "runConfiguration": {
1008
+ "retryOptions": {
1009
+ "duration": "number",
1010
+ "exitCodes": [],
1011
+ "exponentialBackoff": "boolean",
1012
+ "numberOfRetries": "number"
1013
+ },
1014
+ "skipConfiguration": {
1015
+ "skip": "boolean",
1016
+ "skipDAG": "boolean",
1017
+ }
1018
+ }
1019
+ },
1020
+ "stepName4": {
1021
+ "type": "sql",
1022
+ "sqlQueryPath": "string",
1023
+ "repository": {
1024
+ "branch": "string | Required if repository is provided",
1025
+ "token": "string",
1026
+ "url": "string | Required if repository is provided",
1027
+ "filePath": "string | Required if repository is provided"
1028
+ }
1029
+ "parents": [],
1030
+ "parameters": {
1031
+ "env": {
1032
+ "key (string)": "value (string)"
1033
+ },
1034
+ "inherit": {
1035
+ "key (string)": "value (string)"
1036
+ }
1037
+ },
1038
+ "executionParameters": {
1039
+ "conditional": [
1040
+ {
1041
+ "condition": "string",
1042
+ "paramName": "string",
1043
+ "stepName": "string",
1044
+ "value": "string"
1045
+ }
1046
+ ],
1047
+ "parentStatus": [
1048
+ {
1049
+ "condition": "string",
1050
+ "parents": [],
1051
+ "status": []
1052
+ }
1053
+ ]
1054
+ },
1055
+ "runConfiguration": {
1056
+ "retryOptions": {
1057
+ "duration": "number",
1058
+ "exitCodes": [],
1059
+ "exponentialBackoff": "boolean",
1060
+ "numberOfRetries": "number"
1061
+ },
1062
+ "skipConfiguration": {
1063
+ "skip": "boolean",
1064
+ "skipDAG": "boolean",
1065
+ }
1066
+ }
602
1067
  }
603
1068
  }
604
1069
  }
@@ -636,7 +1101,7 @@ class Workflow(BaseClient):
636
1101
  clear_image_cache: Optional[bool] = None,
637
1102
  step_names: Optional[List[str]] = None,
638
1103
  ) -> Dict[str, Any]:
639
- """Update an existing workflow. Workflows with only standard steps are supported.
1104
+ """Update an existing workflow.
640
1105
 
641
1106
  - This function allows to efficiently modify trigger details, watchers, workflow name, and specific step attributes such as repository URL, branch, token, image ID, version ID etc.
642
1107
 
@@ -726,7 +1191,7 @@ class Workflow(BaseClient):
726
1191
  ],
727
1192
  "steps": {
728
1193
  "stepName": {
729
- "type": "string",
1194
+ "type": "standard",
730
1195
  "imageId": "number",
731
1196
  "imageVersionId": "number",
732
1197
  "command": "string",
@@ -758,6 +1223,9 @@ class Workflow(BaseClient):
758
1223
  "env": {
759
1224
  "key (string)": "value (string)"
760
1225
  },
1226
+ "inherit": {
1227
+ "key (string)": "value (string)"
1228
+ },
761
1229
  "secrets": [],
762
1230
  },
763
1231
  "outputParameters": {
@@ -17,7 +17,7 @@ body:
17
17
  notes: This is the original release
18
18
  config:
19
19
  steps:
20
- test:
20
+ step1:
21
21
  command: echo 1
22
22
  type: standard
23
23
  image:
@@ -28,6 +28,54 @@ body:
28
28
  git_token: random_token_1
29
29
  npm_token: random_token_2
30
30
  useCache: "@param:use_cache"
31
+ resources:
32
+ instanceTypeId: 21
33
+ storage: 10GB
34
+ stepTimeout: 30
35
+ clearImageCache: true
36
+ parameters:
37
+ env:
38
+ key: value
39
+ secrets:
40
+ - secret-1
41
+ - secret-2
42
+ repository:
43
+ branch: main
44
+ token: random_token
45
+ url: "https://github.com/org/repo"
46
+ step2:
47
+ type: http
48
+ method: post
49
+ url: "https://peak.ai"
50
+ payload: "{}"
51
+ auth:
52
+ type: no-auth
53
+ headers:
54
+ absolute:
55
+ Content-Type: application/json
56
+ secrets:
57
+ token: some-token
58
+ step3:
59
+ type: sql
60
+ repository:
61
+ branch: main
62
+ token: random_token
63
+ url: "https://example.com"
64
+ filePath: "path/to/file.sql"
65
+ parameters:
66
+ env:
67
+ key1: value1
68
+ key2: value2
69
+ inherit:
70
+ key3: value3
71
+ key4: value4
72
+ step4:
73
+ type: export
74
+ schema: schema_name
75
+ table: table_name
76
+ sortBy: column_name
77
+ sortOrder: asc
78
+ compression: false
31
79
  triggers:
32
80
  - cron: "0 0 * * *"
33
81
  watchers: