29
29
from prefect .client .schemas .objects import (
30
30
ConcurrencyOptions ,
31
31
DeploymentSchedule ,
32
+ VersionInfo ,
32
33
)
33
34
from prefect .client .schemas .responses import (
34
35
DeploymentResponse ,
@@ -48,6 +49,7 @@ def create_deployment(
48
49
flow_id : "UUID" ,
49
50
name : str ,
50
51
version : str | None = None ,
52
+ version_info : "VersionInfo | None" = None ,
51
53
schedules : list ["DeploymentScheduleCreate" ] | None = None ,
52
54
concurrency_limit : int | None = None ,
53
55
concurrency_options : "ConcurrencyOptions | None" = None ,
@@ -65,6 +67,9 @@ def create_deployment(
65
67
pull_steps : list [dict [str , Any ]] | None = None ,
66
68
enforce_parameter_schema : bool | None = None ,
67
69
job_variables : dict [str , Any ] | None = None ,
70
+ branch : str | None = None ,
71
+ base : UUID | None = None ,
72
+ root : UUID | None = None ,
68
73
) -> "UUID" :
69
74
"""
70
75
Create a deployment.
@@ -99,6 +104,7 @@ def create_deployment(
99
104
flow_id = flow_id ,
100
105
name = name ,
101
106
version = version ,
107
+ version_info = version_info ,
102
108
parameters = dict (parameters or {}),
103
109
tags = list (tags or []),
104
110
work_queue_name = work_queue_name ,
@@ -115,6 +121,9 @@ def create_deployment(
115
121
concurrency_options = concurrency_options ,
116
122
pull_steps = pull_steps ,
117
123
enforce_parameter_schema = enforce_parameter_schema ,
124
+ branch = branch ,
125
+ base = base ,
126
+ root = root ,
118
127
)
119
128
120
129
if work_pool_name is not None :
@@ -123,20 +132,29 @@ def create_deployment(
123
132
# Exclude newer fields that are not set to avoid compatibility issues
124
133
exclude = {
125
134
field
126
- for field in ["work_pool_name" , "work_queue_name" ]
135
+ for field in [
136
+ "work_pool_name" ,
137
+ "work_queue_name" ,
138
+ ]
127
139
if field not in deployment_create .model_fields_set
128
140
}
129
141
130
- if deployment_create .paused is None :
131
- exclude .add ("paused" )
132
-
133
- if deployment_create .pull_steps is None :
134
- exclude .add ("pull_steps" )
142
+ exclude_if_none = [
143
+ "paused" ,
144
+ "pull_steps" ,
145
+ "enforce_parameter_schema" ,
146
+ "version_info" ,
147
+ "branch" ,
148
+ "base" ,
149
+ "root" ,
150
+ ]
135
151
136
- if deployment_create .enforce_parameter_schema is None :
137
- exclude .add ("enforce_parameter_schema" )
152
+ for field in exclude_if_none :
153
+ if getattr (deployment_create , field ) is None :
154
+ exclude .add (field )
138
155
139
156
json = deployment_create .model_dump (mode = "json" , exclude = exclude )
157
+
140
158
response = self .request (
141
159
"POST" ,
142
160
"/deployments/" ,
@@ -593,6 +611,7 @@ async def create_deployment(
593
611
flow_id : "UUID" ,
594
612
name : str ,
595
613
version : str | None = None ,
614
+ version_info : "VersionInfo | None" = None ,
596
615
schedules : list ["DeploymentScheduleCreate" ] | None = None ,
597
616
concurrency_limit : int | None = None ,
598
617
concurrency_options : "ConcurrencyOptions | None" = None ,
@@ -610,6 +629,9 @@ async def create_deployment(
610
629
pull_steps : list [dict [str , Any ]] | None = None ,
611
630
enforce_parameter_schema : bool | None = None ,
612
631
job_variables : dict [str , Any ] | None = None ,
632
+ branch : str | None = None ,
633
+ base : UUID | None = None ,
634
+ root : UUID | None = None ,
613
635
) -> "UUID" :
614
636
"""
615
637
Create a deployment.
@@ -644,6 +666,7 @@ async def create_deployment(
644
666
flow_id = flow_id ,
645
667
name = name ,
646
668
version = version ,
669
+ version_info = version_info ,
647
670
parameters = dict (parameters or {}),
648
671
tags = list (tags or []),
649
672
work_queue_name = work_queue_name ,
@@ -660,6 +683,9 @@ async def create_deployment(
660
683
concurrency_options = concurrency_options ,
661
684
pull_steps = pull_steps ,
662
685
enforce_parameter_schema = enforce_parameter_schema ,
686
+ branch = branch ,
687
+ base = base ,
688
+ root = root ,
663
689
)
664
690
665
691
if work_pool_name is not None :
@@ -668,20 +694,29 @@ async def create_deployment(
668
694
# Exclude newer fields that are not set to avoid compatibility issues
669
695
exclude = {
670
696
field
671
- for field in ["work_pool_name" , "work_queue_name" ]
697
+ for field in [
698
+ "work_pool_name" ,
699
+ "work_queue_name" ,
700
+ ]
672
701
if field not in deployment_create .model_fields_set
673
702
}
674
703
675
- if deployment_create .paused is None :
676
- exclude .add ("paused" )
677
-
678
- if deployment_create .pull_steps is None :
679
- exclude .add ("pull_steps" )
704
+ exclude_if_none = [
705
+ "paused" ,
706
+ "pull_steps" ,
707
+ "enforce_parameter_schema" ,
708
+ "version_info" ,
709
+ "branch" ,
710
+ "base" ,
711
+ "root" ,
712
+ ]
680
713
681
- if deployment_create .enforce_parameter_schema is None :
682
- exclude .add ("enforce_parameter_schema" )
714
+ for field in exclude_if_none :
715
+ if getattr (deployment_create , field ) is None :
716
+ exclude .add (field )
683
717
684
718
json = deployment_create .model_dump (mode = "json" , exclude = exclude )
719
+
685
720
response = await self .request (
686
721
"POST" ,
687
722
"/deployments/" ,
0 commit comments