luminarycloud 0.22.2__py3-none-any.whl → 0.23.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 (267) hide show
  1. luminarycloud/__init__.py +9 -3
  2. luminarycloud/_client/client.py +1 -1
  3. luminarycloud/_client/retry_interceptor.py +13 -2
  4. luminarycloud/_helpers/_code_representation.py +1 -0
  5. luminarycloud/_helpers/_create_simulation.py +5 -1
  6. luminarycloud/_helpers/proto_decorator.py +46 -38
  7. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.py +214 -137
  8. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2.pyi +152 -0
  9. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.py +103 -0
  10. luminarycloud/_proto/api/v0/luminarycloud/geometry/geometry_pb2_grpc.pyi +40 -0
  11. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.py +25 -3
  12. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2.pyi +30 -0
  13. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.py +34 -0
  14. luminarycloud/_proto/api/v0/luminarycloud/named_variable_set/named_variable_set_pb2_grpc.pyi +12 -0
  15. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.py +155 -59
  16. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2.pyi +252 -22
  17. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.py +102 -0
  18. luminarycloud/_proto/api/v0/luminarycloud/physics_ai/physics_ai_pb2_grpc.pyi +36 -0
  19. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.py +94 -71
  20. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2.pyi +46 -0
  21. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.py +35 -0
  22. luminarycloud/_proto/api/v0/luminarycloud/simulation/simulation_pb2_grpc.pyi +16 -0
  23. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.py +25 -3
  24. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2.pyi +32 -0
  25. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.py +34 -0
  26. luminarycloud/_proto/api/v0/luminarycloud/simulation_template/simulation_template_pb2_grpc.pyi +12 -0
  27. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.py +68 -21
  28. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2.pyi +119 -0
  29. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.py +33 -0
  30. luminarycloud/_proto/api/v0/luminarycloud/vis/vis_pb2_grpc.pyi +10 -0
  31. luminarycloud/_proto/client/simulation_pb2.py +405 -346
  32. luminarycloud/_proto/client/simulation_pb2.pyi +175 -21
  33. luminarycloud/_proto/clusterconfig/clusterconfig_pb2.py +273 -0
  34. luminarycloud/_proto/clusterconfig/clusterconfig_pb2.pyi +808 -0
  35. luminarycloud/_proto/geometry/geometry_pb2.pyi +1 -1
  36. luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.py +256 -0
  37. luminarycloud/_proto/lcstatus/details/geometry/geometry_pb2.pyi +472 -0
  38. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2.py +2 -2
  39. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.py +102 -0
  40. luminarycloud/_proto/physicsaitrainingservice/physicsaitrainingservice_pb2_grpc.pyi +36 -0
  41. luminarycloud/_proto/quantity/quantity_pb2.pyi +1 -1
  42. luminarycloud/enum/__init__.py +1 -0
  43. luminarycloud/enum/gpu_type.py +42 -7
  44. luminarycloud/enum/vis_enums.py +18 -0
  45. luminarycloud/geometry.py +81 -0
  46. luminarycloud/geometry_contacts.py +222 -0
  47. luminarycloud/meshing/mesh_generation_params.py +4 -4
  48. luminarycloud/meshing/sizing_strategy/__init__.py +0 -1
  49. luminarycloud/meshing/sizing_strategy/sizing_strategies.py +0 -20
  50. luminarycloud/params/geometry/shapes.py +137 -31
  51. luminarycloud/params/outputs/__init__.py +0 -2
  52. luminarycloud/params/outputs/output.py +17 -5
  53. luminarycloud/params/simulation/__init__.py +2 -0
  54. luminarycloud/params/simulation/adaptive_mesh_refinement/active_region_.py +1 -1
  55. luminarycloud/params/simulation/adaptive_mesh_refinement/boundary_layer_profile_.py +1 -1
  56. luminarycloud/params/simulation/adaptive_mesh_refinement_.py +1 -1
  57. luminarycloud/params/simulation/adjoint_.py +8 -5
  58. luminarycloud/params/simulation/basic/gravity/gravity_off_.py +1 -1
  59. luminarycloud/params/simulation/basic/gravity/gravity_on_.py +1 -1
  60. luminarycloud/params/simulation/basic/gravity_.py +1 -1
  61. luminarycloud/params/simulation/body_frame_.py +1 -1
  62. luminarycloud/params/simulation/entity_relationships/volume_material_relationship_.py +1 -1
  63. luminarycloud/params/simulation/entity_relationships/volume_physics_relationship_.py +1 -1
  64. luminarycloud/params/simulation/entity_relationships_.py +1 -1
  65. luminarycloud/params/simulation/general_.py +1 -1
  66. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_off_.py +1 -1
  67. luminarycloud/params/simulation/material/fluid/boussinesq_approximation/boussinesq_on_.py +1 -1
  68. luminarycloud/params/simulation/material/fluid/boussinesq_approximation_.py +1 -1
  69. luminarycloud/params/simulation/material/fluid/material_model/__init__.py +2 -0
  70. luminarycloud/params/simulation/material/fluid/material_model/ideal_gas_.py +1 -1
  71. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_.py +1 -1
  72. luminarycloud/params/simulation/material/fluid/material_model/incompressible_fluid_with_energy_.py +1 -1
  73. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/__init__.py +2 -0
  74. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_coolprop_.py +43 -0
  75. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend/real_gas_polynomial_.py +53 -0
  76. luminarycloud/params/simulation/material/fluid/material_model/real_gas_backend_.py +29 -0
  77. luminarycloud/params/simulation/material/fluid/material_model_.py +1 -1
  78. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_conductivity_.py +1 -1
  79. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/prescribed_prandtl_number_.py +1 -1
  80. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model/temperature_dependent_conductivity_.py +1 -1
  81. luminarycloud/params/simulation/material/fluid/thermal_conductivity_model_.py +1 -1
  82. luminarycloud/params/simulation/material/fluid/viscosity_model/prescribed_viscosity_.py +1 -1
  83. luminarycloud/params/simulation/material/fluid/viscosity_model/sutherland_.py +1 -1
  84. luminarycloud/params/simulation/material/fluid/viscosity_model/temperature_dependent_viscosity_.py +1 -1
  85. luminarycloud/params/simulation/material/fluid/viscosity_model_.py +1 -1
  86. luminarycloud/params/simulation/material/material_fluid_.py +78 -2
  87. luminarycloud/params/simulation/material/material_solid_.py +1 -1
  88. luminarycloud/params/simulation/material_entity_.py +1 -1
  89. luminarycloud/params/simulation/monitor_plane_.py +1 -1
  90. luminarycloud/params/simulation/motion_data/frame_transforms/no_transform_.py +1 -1
  91. luminarycloud/params/simulation/motion_data/frame_transforms/rotational_transform_.py +1 -1
  92. luminarycloud/params/simulation/motion_data/frame_transforms/translational_transform_.py +1 -1
  93. luminarycloud/params/simulation/motion_data/frame_transforms_.py +1 -1
  94. luminarycloud/params/simulation/motion_data/motion_type/constant_angular_motion_.py +1 -1
  95. luminarycloud/params/simulation/motion_data/motion_type/constant_translation_motion_.py +1 -1
  96. luminarycloud/params/simulation/motion_data/motion_type_.py +1 -1
  97. luminarycloud/params/simulation/motion_data_.py +1 -1
  98. luminarycloud/params/simulation/multi_physics_coupling_options_.py +1 -1
  99. luminarycloud/params/simulation/nonlinear_control/__init__.py +1 -0
  100. luminarycloud/params/simulation/nonlinear_control/nonlinear_control_system_.py +48 -0
  101. luminarycloud/params/simulation/nonlinear_control_.py +61 -0
  102. luminarycloud/params/simulation/output_.py +1 -1
  103. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_normal_vector_.py +1 -1
  104. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection/actuator_disk_specify_rotation_angles_.py +1 -1
  105. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk/actuator_disk_orientation_selection_.py +1 -1
  106. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_disk_.py +1 -1
  107. luminarycloud/params/simulation/particle_group/particle_group_type/actuator_line_.py +1 -1
  108. luminarycloud/params/simulation/particle_group/particle_group_type/probe_points_.py +1 -1
  109. luminarycloud/params/simulation/particle_group/particle_group_type/source_points_.py +1 -1
  110. luminarycloud/params/simulation/particle_group/particle_group_type_.py +1 -1
  111. luminarycloud/params/simulation/particle_group_.py +1 -1
  112. luminarycloud/params/simulation/physics/fluid/adjoint_controls_fluid_.py +1 -1
  113. luminarycloud/params/simulation/physics/fluid/basic_fluid_.py +1 -1
  114. luminarycloud/params/simulation/physics/fluid/boundary_conditions/farfield_.py +1 -1
  115. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/fan_curve_inlet_.py +1 -1
  116. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mach_inlet_.py +1 -1
  117. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/mass_flow_inlet_.py +1 -1
  118. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/total_pressure_inlet_.py +1 -1
  119. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_components_inlet_.py +1 -1
  120. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet/velocity_magnitude_inlet_.py +1 -1
  121. luminarycloud/params/simulation/physics/fluid/boundary_conditions/inlet_.py +1 -1
  122. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/fan_curve_outlet_.py +1 -1
  123. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_pressure_.py +1 -1
  124. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_corrected_mass_flow_rate_.py +1 -1
  125. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy/outlet_target_mass_flow_rate_.py +1 -1
  126. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet/outlet_strategy_.py +1 -1
  127. luminarycloud/params/simulation/physics/fluid/boundary_conditions/outlet_.py +1 -1
  128. luminarycloud/params/simulation/physics/fluid/boundary_conditions/symmetry_.py +1 -1
  129. luminarycloud/params/simulation/physics/fluid/boundary_conditions/turbulence_boundary_conditions_.py +1 -1
  130. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_heat_flux_.py +1 -1
  131. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/energy/prescribed_temperature_.py +1 -1
  132. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/no_slip_.py +1 -1
  133. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/slip_.py +1 -1
  134. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/momentum/wall_model_.py +1 -1
  135. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_energy_.py +1 -1
  136. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall/wall_momentum_.py +1 -1
  137. luminarycloud/params/simulation/physics/fluid/boundary_conditions/wall_.py +1 -1
  138. luminarycloud/params/simulation/physics/fluid/boundary_conditions_fluid_.py +1 -1
  139. luminarycloud/params/simulation/physics/fluid/initialization/__init__.py +1 -0
  140. luminarycloud/params/simulation/physics/fluid/initialization/fluid_existing_solution_.py +1 -1
  141. luminarycloud/params/simulation/physics/fluid/initialization/fluid_farfield_values_.py +14 -1
  142. luminarycloud/params/simulation/physics/fluid/initialization/fluid_initialization_per_zone_.py +48 -0
  143. luminarycloud/params/simulation/physics/fluid/initialization/fluid_prescribed_values_.py +14 -1
  144. luminarycloud/params/simulation/physics/fluid/initialization/turbulence_initialization_.py +1 -1
  145. luminarycloud/params/simulation/physics/fluid/initialization_fluid_.py +1 -1
  146. luminarycloud/params/simulation/physics/fluid/physical_behavior/blade_element_airfoil_data_.py +1 -1
  147. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_blade_element_.py +1 -1
  148. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_radial_distribution_.py +1 -1
  149. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/actuator_disk_uniform_thrust_.py +1 -1
  150. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model/fan_curve_internal_.py +1 -1
  151. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_disk_model_.py +1 -1
  152. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model/actuator_line_blade_element_.py +1 -1
  153. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/actuator_line_model_.py +1 -1
  154. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/blade_element_params_.py +1 -1
  155. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_acceleration_source_.py +1 -1
  156. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model/general_mass_source_.py +1 -1
  157. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model/particle_source_model_.py +1 -1
  158. luminarycloud/params/simulation/physics/fluid/physical_behavior/physical_behavior_model_.py +1 -1
  159. luminarycloud/params/simulation/physics/fluid/physical_behavior_.py +1 -1
  160. luminarycloud/params/simulation/physics/fluid/porous_behavior_.py +1 -1
  161. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_explicit_relaxation_.py +1 -1
  162. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_auto_.py +1 -1
  163. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_off_.py +1 -1
  164. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup/robust_startup_on_.py +1 -1
  165. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation/robust_startup_.py +1 -1
  166. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method/fluid_implicit_relaxation_.py +1 -1
  167. luminarycloud/params/simulation/physics/fluid/solution_controls/fluid_relaxation_method_.py +1 -1
  168. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/cfl_based_.py +1 -1
  169. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method/fixed_pseudo_time_step_.py +1 -1
  170. luminarycloud/params/simulation/physics/fluid/solution_controls/pseudo_time_step_method_.py +1 -1
  171. luminarycloud/params/simulation/physics/fluid/solution_controls_fluid_.py +1 -1
  172. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ec2_.py +1 -1
  173. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/fds_.py +1 -1
  174. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/ld2_.py +1 -1
  175. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme/rhie_chow_.py +1 -1
  176. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_.py +1 -1
  177. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/first_order_.py +1 -1
  178. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order/second_order_.py +1 -1
  179. luminarycloud/params/simulation/physics/fluid/spatial_discretization/convective_scheme_order_.py +1 -1
  180. luminarycloud/params/simulation/physics/fluid/spatial_discretization_fluid_.py +1 -1
  181. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_.py +1 -1
  182. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/ddes_vtm_.py +1 -1
  183. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation/iddes_.py +1 -1
  184. luminarycloud/params/simulation/physics/fluid/turbulence/des_formulation_.py +1 -1
  185. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/custom_komega_sst_constants_.py +1 -1
  186. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/constants/default_komega_sst_constants_.py +1 -1
  187. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst/komega_sst_constants_.py +1 -1
  188. luminarycloud/params/simulation/physics/fluid/turbulence/komega_sst_.py +1 -1
  189. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/custom_spalart_allmaras_constants_.py +1 -1
  190. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/constants/default_spalart_allmaras_constants_.py +1 -1
  191. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras/spalart_allmaras_constants_.py +1 -1
  192. luminarycloud/params/simulation/physics/fluid/turbulence/spalart_allmaras_.py +1 -1
  193. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/amd_.py +1 -1
  194. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/sigma_.py +1 -1
  195. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/smagorinsky_.py +1 -1
  196. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/vreman_.py +1 -1
  197. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model/wale_.py +1 -1
  198. luminarycloud/params/simulation/physics/fluid/turbulence/sub_grid_scale_model_.py +1 -1
  199. luminarycloud/params/simulation/physics/fluid/turbulence_.py +1 -1
  200. luminarycloud/params/simulation/physics/fluid_.py +1 -1
  201. luminarycloud/params/simulation/physics/heat/adjoint_controls_heat_.py +1 -1
  202. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_convection_.py +1 -1
  203. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_heat_flux_.py +1 -1
  204. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_integrated_heat_flux_.py +1 -1
  205. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_symmetry_.py +1 -1
  206. luminarycloud/params/simulation/physics/heat/boundary_conditions/heat_bc_temperature_.py +1 -1
  207. luminarycloud/params/simulation/physics/heat/boundary_conditions_heat_.py +1 -1
  208. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_.py +1 -1
  209. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type/heat_source_type_power_per_unit_of_volume_.py +1 -1
  210. luminarycloud/params/simulation/physics/heat/heat_source/heat_source_type_.py +1 -1
  211. luminarycloud/params/simulation/physics/heat/heat_source_.py +1 -1
  212. luminarycloud/params/simulation/physics/heat/initialization/__init__.py +1 -0
  213. luminarycloud/params/simulation/physics/heat/initialization/heat_existing_solution_.py +1 -1
  214. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/__init__.py +1 -0
  215. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values/heat_initialization_per_zone_.py +40 -0
  216. luminarycloud/params/simulation/physics/heat/initialization/heat_prescribed_values_.py +14 -1
  217. luminarycloud/params/simulation/physics/heat/initialization_heat_.py +1 -1
  218. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method/heat_implicit_relaxation_.py +1 -1
  219. luminarycloud/params/simulation/physics/heat/solution_controls/heat_relaxation_method_.py +1 -1
  220. luminarycloud/params/simulation/physics/heat/solution_controls_heat_.py +1 -1
  221. luminarycloud/params/simulation/physics/heat/spatial_discretization_heat_.py +1 -1
  222. luminarycloud/params/simulation/physics/heat_.py +1 -1
  223. luminarycloud/params/simulation/physics/periodic_pair_.py +5 -1
  224. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/gauss_seidel_.py +1 -1
  225. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type/krylov_amg_.py +1 -1
  226. luminarycloud/params/simulation/physics/solution_controls/linear_solver_type_.py +1 -1
  227. luminarycloud/params/simulation/physics_.py +1 -1
  228. luminarycloud/params/simulation/simulation_param_.py +8 -1
  229. luminarycloud/params/simulation/sliding_interfaces_.py +1 -1
  230. luminarycloud/params/simulation/surface_name_.py +1 -1
  231. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_off_.py +1 -1
  232. luminarycloud/params/simulation/time/compute_statistics/compute_statistics_on_.py +1 -1
  233. luminarycloud/params/simulation/time/compute_statistics_.py +1 -1
  234. luminarycloud/params/simulation/time/time_marching/time_explicit_.py +1 -1
  235. luminarycloud/params/simulation/time/time_marching/time_implicit_.py +1 -1
  236. luminarycloud/params/simulation/time/time_marching_.py +1 -1
  237. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_off_.py +1 -1
  238. luminarycloud/params/simulation/time/time_step_ramp/time_step_ramp_on_.py +1 -1
  239. luminarycloud/params/simulation/time/time_step_ramp_.py +1 -1
  240. luminarycloud/params/simulation/time_.py +1 -1
  241. luminarycloud/params/simulation/volume_entity_.py +1 -1
  242. luminarycloud/physics_ai/__init__.py +17 -0
  243. luminarycloud/physics_ai/architectures.py +130 -18
  244. luminarycloud/physics_ai/datasets.py +301 -0
  245. luminarycloud/physics_ai/training_jobs.py +50 -4
  246. luminarycloud/pipelines/__init__.py +16 -4
  247. luminarycloud/pipelines/api.py +192 -17
  248. luminarycloud/pipelines/arguments.py +8 -3
  249. luminarycloud/pipelines/core.py +296 -45
  250. luminarycloud/pipelines/flowables.py +138 -0
  251. luminarycloud/pipelines/stages.py +34 -55
  252. luminarycloud/pipelines/user_code_validation.py +122 -0
  253. luminarycloud/project.py +0 -14
  254. luminarycloud/simulation.py +42 -11
  255. luminarycloud/simulation_param.py +0 -62
  256. luminarycloud/simulation_template.py +1 -11
  257. luminarycloud/types/adfloat.py +48 -4
  258. luminarycloud/types/matrix3.py +9 -9
  259. luminarycloud/types/vector3.py +52 -23
  260. luminarycloud/vis/__init__.py +3 -0
  261. luminarycloud/vis/visualization.py +88 -0
  262. luminarycloud/volume_selection.py +29 -17
  263. {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/METADATA +1 -1
  264. {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/RECORD +266 -249
  265. luminarycloud/params/outputs/residual_output.py +0 -24
  266. /luminarycloud/params/{simulation/_lib.py → _lib.py} +0 -0
  267. {luminarycloud-0.22.2.dist-info → luminarycloud-0.23.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,808 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import collections.abc
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.duration_pb2
9
+ import google.protobuf.internal.containers
10
+ import google.protobuf.internal.enum_type_wrapper
11
+ import google.protobuf.message
12
+ import sys
13
+ import typing
14
+
15
+ if sys.version_info >= (3, 10):
16
+ import typing as typing_extensions
17
+ else:
18
+ import typing_extensions
19
+
20
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
21
+
22
+ class _GPUType:
23
+ ValueType = typing.NewType("ValueType", builtins.int)
24
+ V: typing_extensions.TypeAlias = ValueType
25
+
26
+ class _GPUTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_GPUType.ValueType], builtins.type): # noqa: F821
27
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
28
+ UNSPECIFIED: _GPUType.ValueType # 0
29
+ CPU: _GPUType.ValueType # 1
30
+ T4: _GPUType.ValueType # 2
31
+ V100: _GPUType.ValueType # 3
32
+ A100: _GPUType.ValueType # 4
33
+ A100_80: _GPUType.ValueType # 5
34
+ H100: _GPUType.ValueType # 6
35
+ N_GPU_TYPE: _GPUType.ValueType # 7
36
+ """This is a value we should do without"""
37
+
38
+ class GPUType(_GPUType, metaclass=_GPUTypeEnumTypeWrapper):
39
+ """When you update this enum, also update gpuTypeNames in lib/proto.ts."""
40
+
41
+ UNSPECIFIED: GPUType.ValueType # 0
42
+ CPU: GPUType.ValueType # 1
43
+ T4: GPUType.ValueType # 2
44
+ V100: GPUType.ValueType # 3
45
+ A100: GPUType.ValueType # 4
46
+ A100_80: GPUType.ValueType # 5
47
+ H100: GPUType.ValueType # 6
48
+ N_GPU_TYPE: GPUType.ValueType # 7
49
+ """This is a value we should do without"""
50
+ global___GPUType = GPUType
51
+
52
+ class _DayOfWeek:
53
+ ValueType = typing.NewType("ValueType", builtins.int)
54
+ V: typing_extensions.TypeAlias = ValueType
55
+
56
+ class _DayOfWeekEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DayOfWeek.ValueType], builtins.type): # noqa: F821
57
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
58
+ UNKNOWN: _DayOfWeek.ValueType # 0
59
+ MON: _DayOfWeek.ValueType # 1
60
+ TUE: _DayOfWeek.ValueType # 2
61
+ WED: _DayOfWeek.ValueType # 3
62
+ THU: _DayOfWeek.ValueType # 4
63
+ FRI: _DayOfWeek.ValueType # 5
64
+ SAT: _DayOfWeek.ValueType # 6
65
+ SUN: _DayOfWeek.ValueType # 7
66
+
67
+ class DayOfWeek(_DayOfWeek, metaclass=_DayOfWeekEnumTypeWrapper): ...
68
+
69
+ UNKNOWN: DayOfWeek.ValueType # 0
70
+ MON: DayOfWeek.ValueType # 1
71
+ TUE: DayOfWeek.ValueType # 2
72
+ WED: DayOfWeek.ValueType # 3
73
+ THU: DayOfWeek.ValueType # 4
74
+ FRI: DayOfWeek.ValueType # 5
75
+ SAT: DayOfWeek.ValueType # 6
76
+ SUN: DayOfWeek.ValueType # 7
77
+ global___DayOfWeek = DayOfWeek
78
+
79
+ class _PreemptibleOverride:
80
+ ValueType = typing.NewType("ValueType", builtins.int)
81
+ V: typing_extensions.TypeAlias = ValueType
82
+
83
+ class _PreemptibleOverrideEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PreemptibleOverride.ValueType], builtins.type): # noqa: F821
84
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
85
+ UNSPECIFIED_PREEMPTIBLE_OVERRIDE: _PreemptibleOverride.ValueType # 0
86
+ NEVER_PREEMPTIBLE: _PreemptibleOverride.ValueType # 1
87
+ """Never use preemptible nodes."""
88
+ ALWAYS_PREEMPTIBLE: _PreemptibleOverride.ValueType # 2
89
+ """Always use preemptible nodes."""
90
+
91
+ class PreemptibleOverride(_PreemptibleOverride, metaclass=_PreemptibleOverrideEnumTypeWrapper): ...
92
+
93
+ UNSPECIFIED_PREEMPTIBLE_OVERRIDE: PreemptibleOverride.ValueType # 0
94
+ NEVER_PREEMPTIBLE: PreemptibleOverride.ValueType # 1
95
+ """Never use preemptible nodes."""
96
+ ALWAYS_PREEMPTIBLE: PreemptibleOverride.ValueType # 2
97
+ """Always use preemptible nodes."""
98
+ global___PreemptibleOverride = PreemptibleOverride
99
+
100
+ class _ResourceUnit:
101
+ ValueType = typing.NewType("ValueType", builtins.int)
102
+ V: typing_extensions.TypeAlias = ValueType
103
+
104
+ class _ResourceUnitEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ResourceUnit.ValueType], builtins.type): # noqa: F821
105
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
106
+ RESOURCE_INVALID: _ResourceUnit.ValueType # 0
107
+ RESOURCE_CPU: _ResourceUnit.ValueType # 1
108
+ """1 CPU, * 1 second"""
109
+ RESOURCE_T4: _ResourceUnit.ValueType # 2
110
+ """1 T4 * 1 second"""
111
+ RESOURCE_V100: _ResourceUnit.ValueType # 3
112
+ """1 V100 * 1 second"""
113
+ RESOURCE_A100: _ResourceUnit.ValueType # 4
114
+ """1 A100 * 1 second"""
115
+ RESOURCE_GCS: _ResourceUnit.ValueType # 5
116
+ """1 MB * 1 hour"""
117
+ RESOURCE_GCN: _ResourceUnit.ValueType # 6
118
+ """1MiB"""
119
+ RESOURCE_A100_80: _ResourceUnit.ValueType # 7
120
+ """1 A100-80GB * 1 second"""
121
+ RESOURCE_E2: _ResourceUnit.ValueType # 8
122
+ """1 E2 * 1 second"""
123
+ RESOURCE_H100: _ResourceUnit.ValueType # 9
124
+ """1 H100 * 1 second"""
125
+ N_RESOURCE_UNIT: _ResourceUnit.ValueType # 10
126
+ """Not a usable value - used only for bounds on iteration."""
127
+
128
+ class ResourceUnit(_ResourceUnit, metaclass=_ResourceUnitEnumTypeWrapper):
129
+ """ResourceUnit defines a billable resource. It must exactly match DB
130
+ ResourceUnit type definition. See db/000001.*.sql for their meanings.
131
+ """
132
+
133
+ RESOURCE_INVALID: ResourceUnit.ValueType # 0
134
+ RESOURCE_CPU: ResourceUnit.ValueType # 1
135
+ """1 CPU, * 1 second"""
136
+ RESOURCE_T4: ResourceUnit.ValueType # 2
137
+ """1 T4 * 1 second"""
138
+ RESOURCE_V100: ResourceUnit.ValueType # 3
139
+ """1 V100 * 1 second"""
140
+ RESOURCE_A100: ResourceUnit.ValueType # 4
141
+ """1 A100 * 1 second"""
142
+ RESOURCE_GCS: ResourceUnit.ValueType # 5
143
+ """1 MB * 1 hour"""
144
+ RESOURCE_GCN: ResourceUnit.ValueType # 6
145
+ """1MiB"""
146
+ RESOURCE_A100_80: ResourceUnit.ValueType # 7
147
+ """1 A100-80GB * 1 second"""
148
+ RESOURCE_E2: ResourceUnit.ValueType # 8
149
+ """1 E2 * 1 second"""
150
+ RESOURCE_H100: ResourceUnit.ValueType # 9
151
+ """1 H100 * 1 second"""
152
+ N_RESOURCE_UNIT: ResourceUnit.ValueType # 10
153
+ """Not a usable value - used only for bounds on iteration."""
154
+ global___ResourceUnit = ResourceUnit
155
+
156
+ class TimeOfDay(google.protobuf.message.Message):
157
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
158
+
159
+ HOUR_FIELD_NUMBER: builtins.int
160
+ MINUTE_FIELD_NUMBER: builtins.int
161
+ hour: builtins.int
162
+ """Hour of day (0 to 23)"""
163
+ minute: builtins.int
164
+ """Minutes of hour (0 to 59)"""
165
+ def __init__(
166
+ self,
167
+ *,
168
+ hour: builtins.int = ...,
169
+ minute: builtins.int = ...,
170
+ ) -> None: ...
171
+ def ClearField(self, field_name: typing_extensions.Literal["hour", b"hour", "minute", b"minute"]) -> None: ...
172
+
173
+ global___TimeOfDay = TimeOfDay
174
+
175
+ class PeakUsageWindow(google.protobuf.message.Message):
176
+ """Simple way to denote the time window when nodes should be kept warm:
177
+ (1) which days of the week
178
+ (2) what time-window during those days
179
+ In particular, 9-5 on week days would be specified as
180
+ peak_usage_days='MON,TUE,WED,THU,FRI'
181
+ peak_usage_start_time='09:00'
182
+ peak_usage_duration='8h'
183
+ Note that
184
+ (1) this start time is interpreted as "Pacific Time", and
185
+ (2) we make the simplifying assumption that it doesn't span multiple days.
186
+ """
187
+
188
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
189
+
190
+ PEAK_USAGE_DAYS_FIELD_NUMBER: builtins.int
191
+ PEAK_USAGE_START_TIME_PST_FIELD_NUMBER: builtins.int
192
+ PEAK_USAGE_DURATION_FIELD_NUMBER: builtins.int
193
+ @property
194
+ def peak_usage_days(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___DayOfWeek.ValueType]:
195
+ """Days of the week when the peak usage window starts."""
196
+ @property
197
+ def peak_usage_start_time_pst(self) -> global___TimeOfDay:
198
+ """Start time of the peak usage window, in PST."""
199
+ @property
200
+ def peak_usage_duration(self) -> google.protobuf.duration_pb2.Duration:
201
+ """Duration of the peak usage window."""
202
+ def __init__(
203
+ self,
204
+ *,
205
+ peak_usage_days: collections.abc.Iterable[global___DayOfWeek.ValueType] | None = ...,
206
+ peak_usage_start_time_pst: global___TimeOfDay | None = ...,
207
+ peak_usage_duration: google.protobuf.duration_pb2.Duration | None = ...,
208
+ ) -> None: ...
209
+ def HasField(self, field_name: typing_extensions.Literal["peak_usage_duration", b"peak_usage_duration", "peak_usage_start_time_pst", b"peak_usage_start_time_pst"]) -> builtins.bool: ...
210
+ def ClearField(self, field_name: typing_extensions.Literal["peak_usage_days", b"peak_usage_days", "peak_usage_duration", b"peak_usage_duration", "peak_usage_start_time_pst", b"peak_usage_start_time_pst"]) -> None: ...
211
+
212
+ global___PeakUsageWindow = PeakUsageWindow
213
+
214
+ class NodePool(google.protobuf.message.Message):
215
+ """Summary of a GKE nodepool."""
216
+
217
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
218
+
219
+ NAME_FIELD_NUMBER: builtins.int
220
+ MACHINE_TYPE_FIELD_NUMBER: builtins.int
221
+ ZONE_FIELD_NUMBER: builtins.int
222
+ GPU_TYPE_FIELD_NUMBER: builtins.int
223
+ N_GPU_PER_NODE_FIELD_NUMBER: builtins.int
224
+ N_CPU_PER_NODE_FIELD_NUMBER: builtins.int
225
+ MEMORY_GB_PER_NODE_FIELD_NUMBER: builtins.int
226
+ DESCRIPTION_FIELD_NUMBER: builtins.int
227
+ MAX_NODES_PER_JOB_FIELD_NUMBER: builtins.int
228
+ JOB_SCHEDULER_FIELD_NUMBER: builtins.int
229
+ RESERVATION_FIELD_NUMBER: builtins.int
230
+ N_KEEP_ALIVE_FIELD_NUMBER: builtins.int
231
+ ALLOCATION_PRIORITY_FIELD_NUMBER: builtins.int
232
+ MAX_ALIVE_NODES_FIELD_NUMBER: builtins.int
233
+ NO_BULK_INSERT_FIELD_NUMBER: builtins.int
234
+ NO_SMALL_JOBS_FIELD_NUMBER: builtins.int
235
+ PEAK_USAGE_WINDOW_FIELD_NUMBER: builtins.int
236
+ ALLOW_PEAK_USAGE_FIELD_NUMBER: builtins.int
237
+ UNUSED_FIELD_NUMBER: builtins.int
238
+ PREEMPTIBLE_OVERRIDE_FIELD_NUMBER: builtins.int
239
+ KUEUE_LOCAL_QUEUE_FIELD_NUMBER: builtins.int
240
+ KUEUE_LOCAL_QUEUE_PREEMPTION_FIELD_NUMBER: builtins.int
241
+ name: builtins.str
242
+ """The GKE node pool name, e.g., "worker-t4". Must be a valid DNS name."""
243
+ machine_type: builtins.str
244
+ """GCE machine type. E.g., "n1-standard-2" """
245
+ zone: builtins.str
246
+ """The GCP zone the nodes run in. e.g., "us-west1-b"
247
+ TODO(saito) make it repeated?
248
+ """
249
+ gpu_type: global___GPUType.ValueType
250
+ """GPU type of the machines in the pool.
251
+ INVARIANT: gpu_type != UNSPECIFIED
252
+ """
253
+ n_gpu_per_node: builtins.int
254
+ """Number of GPUs per machine.
255
+ INVARIANT: =0 if gpu_type=CPU, else >0.
256
+ """
257
+ n_cpu_per_node: builtins.int
258
+ """Number of CPUs per machine.
259
+ INVARIANT: >=1
260
+ """
261
+ memory_gb_per_node: builtins.float
262
+ """Memory size per machine, in GiB."""
263
+ description: builtins.str
264
+ """Tooltip to be shown in the cloud-settings UI.
265
+
266
+ REQUIRES: Within a ClusterConfig, name and description must map one to one.
267
+ """
268
+ max_nodes_per_job: builtins.int
269
+ """Maximum number of nodes that one job can allocate."""
270
+ job_scheduler: builtins.str
271
+ """The value is either "external" or "jm-nodemanager". If "jm-nodemanager",
272
+ the pool is managed by the nodemanager. If "external", the pool is managed
273
+ by kubernetes.
274
+ """
275
+ reservation: builtins.str
276
+ """GCP reservation to use for this node pool, if any.
277
+ If reservation != "", the node pool will only try to allocate nodes from the reservation.
278
+ Example: "projects/luminarycloud-prod/reservations/luminarycloud-2022-03"
279
+ Valid iff job_scheduler=="jm-nodemanager"
280
+ """
281
+ n_keep_alive: builtins.int
282
+ """Number of idle nodes in the pool to keep alive at all times. This means that, if jobs
283
+ come in and consume the idle nodes, we will attempt to pre-boot more nodes to handle
284
+ any more jobs that come in.
285
+ """
286
+ allocation_priority: builtins.int
287
+ """nodepool priority used to prefer certain nodepools for allocating new nodes for a job
288
+ when existing nodes are not available or are not sufficient to run a job.
289
+ Higher priority nodepools take precedence when multiple nodepools satisfy the job criteria.
290
+ In case of similar priority, we give preference to pools requiring fewer nodes or higher capacity nodes.
291
+ """
292
+ max_alive_nodes: builtins.int
293
+ """Maximum number of alive nodes in the pool. If not found or empty, no limit
294
+ will be enforced.
295
+ """
296
+ no_bulk_insert: builtins.bool
297
+ """If set to true, do not use BulkInsert GCP operations to create instances in this node pool.
298
+ See LC-11033 and LC-11161.
299
+ """
300
+ no_small_jobs: builtins.bool
301
+ """If set to true, do not schedule smaller jobs(< node size in cpus/gpus) on this node pool."""
302
+ @property
303
+ def peak_usage_window(self) -> global___PeakUsageWindow:
304
+ """If specified, `n_keep_alive` above will only be applied during the specified
305
+ interval. This will also be leveraged to allow sharing with other environments
306
+ off-peak.
307
+ """
308
+ allow_peak_usage: builtins.bool
309
+ """If specified, and true, will allow using this nodepool during peak-usage hours."""
310
+ unused: builtins.bool
311
+ preemptible_override: global___PreemptibleOverride.ValueType
312
+ """If specified, and true, will override the "preemptibility" of nodes in this environment
313
+ - Never: This is necessary for sharing a nodepool that uses reserved nodes, across multiple
314
+ environments.
315
+ - Always: This is necessary for sharing nodepool that uses nodes that we can't get on-demand, but would still want to "burst into"
316
+ """
317
+ kueue_local_queue: builtins.str
318
+ """Kueue local queue for the given namespace that this nodepool is supposed to
319
+ be used.
320
+ """
321
+ kueue_local_queue_preemption: builtins.str
322
+ """Kueue local queue for the given namespace that this nodepool is supposed to
323
+ be used for preemption. Use with care when setting this value in
324
+ production.
325
+ """
326
+ def __init__(
327
+ self,
328
+ *,
329
+ name: builtins.str = ...,
330
+ machine_type: builtins.str = ...,
331
+ zone: builtins.str = ...,
332
+ gpu_type: global___GPUType.ValueType = ...,
333
+ n_gpu_per_node: builtins.int = ...,
334
+ n_cpu_per_node: builtins.int = ...,
335
+ memory_gb_per_node: builtins.float = ...,
336
+ description: builtins.str = ...,
337
+ max_nodes_per_job: builtins.int = ...,
338
+ job_scheduler: builtins.str = ...,
339
+ reservation: builtins.str = ...,
340
+ n_keep_alive: builtins.int = ...,
341
+ allocation_priority: builtins.int = ...,
342
+ max_alive_nodes: builtins.int = ...,
343
+ no_bulk_insert: builtins.bool = ...,
344
+ no_small_jobs: builtins.bool = ...,
345
+ peak_usage_window: global___PeakUsageWindow | None = ...,
346
+ allow_peak_usage: builtins.bool = ...,
347
+ unused: builtins.bool = ...,
348
+ preemptible_override: global___PreemptibleOverride.ValueType = ...,
349
+ kueue_local_queue: builtins.str = ...,
350
+ kueue_local_queue_preemption: builtins.str = ...,
351
+ ) -> None: ...
352
+ def HasField(self, field_name: typing_extensions.Literal["peak_usage_window", b"peak_usage_window"]) -> builtins.bool: ...
353
+ def ClearField(self, field_name: typing_extensions.Literal["allocation_priority", b"allocation_priority", "allow_peak_usage", b"allow_peak_usage", "description", b"description", "gpu_type", b"gpu_type", "job_scheduler", b"job_scheduler", "kueue_local_queue", b"kueue_local_queue", "kueue_local_queue_preemption", b"kueue_local_queue_preemption", "machine_type", b"machine_type", "max_alive_nodes", b"max_alive_nodes", "max_nodes_per_job", b"max_nodes_per_job", "memory_gb_per_node", b"memory_gb_per_node", "n_cpu_per_node", b"n_cpu_per_node", "n_gpu_per_node", b"n_gpu_per_node", "n_keep_alive", b"n_keep_alive", "name", b"name", "no_bulk_insert", b"no_bulk_insert", "no_small_jobs", b"no_small_jobs", "peak_usage_window", b"peak_usage_window", "preemptible_override", b"preemptible_override", "reservation", b"reservation", "unused", b"unused", "zone", b"zone"]) -> None: ...
354
+
355
+ global___NodePool = NodePool
356
+
357
+ class ClusterConfig(google.protobuf.message.Message):
358
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
359
+
360
+ NODE_POOLS_FIELD_NUMBER: builtins.int
361
+ RESERVATIONS_FIELD_NUMBER: builtins.int
362
+ NODEMANAGER_K8S_CONFIG_FIELD_NUMBER: builtins.int
363
+ @property
364
+ def node_pools(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NodePool]:
365
+ """List of GKE nodepools in the Kubernetes cluster. Plural name."""
366
+ @property
367
+ def reservations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NodeReservation]:
368
+ """Set of nodes to reserve permanently. Optional. Plural name."""
369
+ @property
370
+ def nodemanager_k8s_config(self) -> global___NodemanagerK8sConfig:
371
+ """Nodemanager configuration to run jobs on the common dataplane cluster."""
372
+ def __init__(
373
+ self,
374
+ *,
375
+ node_pools: collections.abc.Iterable[global___NodePool] | None = ...,
376
+ reservations: collections.abc.Iterable[global___NodeReservation] | None = ...,
377
+ nodemanager_k8s_config: global___NodemanagerK8sConfig | None = ...,
378
+ ) -> None: ...
379
+ def HasField(self, field_name: typing_extensions.Literal["nodemanager_k8s_config", b"nodemanager_k8s_config"]) -> builtins.bool: ...
380
+ def ClearField(self, field_name: typing_extensions.Literal["node_pools", b"node_pools", "nodemanager_k8s_config", b"nodemanager_k8s_config", "reservations", b"reservations"]) -> None: ...
381
+
382
+ global___ClusterConfig = ClusterConfig
383
+
384
+ class NodeReservation(google.protobuf.message.Message):
385
+ """Request to allocate one node."""
386
+
387
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
388
+
389
+ N_PU_FIELD_NUMBER: builtins.int
390
+ GPU_TYPE_FIELD_NUMBER: builtins.int
391
+ EXPIRY_FIELD_NUMBER: builtins.int
392
+ n_pu: builtins.int
393
+ """Number of GPUs or CPUs needed on the node."""
394
+ gpu_type: global___GPUType.ValueType
395
+ """The type of node to allocate. It must be_pool.gpu_type for one of the
396
+ NodePools in ClusterConfig
397
+ """
398
+ expiry: builtins.int
399
+ """The expiry time for the node reservation, in seconds since 1970-1-1"""
400
+ def __init__(
401
+ self,
402
+ *,
403
+ n_pu: builtins.int = ...,
404
+ gpu_type: global___GPUType.ValueType = ...,
405
+ expiry: builtins.int = ...,
406
+ ) -> None: ...
407
+ def ClearField(self, field_name: typing_extensions.Literal["expiry", b"expiry", "gpu_type", b"gpu_type", "n_pu", b"n_pu"]) -> None: ...
408
+
409
+ global___NodeReservation = NodeReservation
410
+
411
+ class NodeReservationState(google.protobuf.message.Message):
412
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
413
+
414
+ REQUEST_FIELD_NUMBER: builtins.int
415
+ NODE_POOL_FIELD_NUMBER: builtins.int
416
+ @property
417
+ def request(self) -> global___NodeReservation:
418
+ """Original request by the user"""
419
+ node_pool: builtins.str
420
+ """Assigned node pool. "" if unassigned."""
421
+ def __init__(
422
+ self,
423
+ *,
424
+ request: global___NodeReservation | None = ...,
425
+ node_pool: builtins.str = ...,
426
+ ) -> None: ...
427
+ def HasField(self, field_name: typing_extensions.Literal["request", b"request"]) -> builtins.bool: ...
428
+ def ClearField(self, field_name: typing_extensions.Literal["node_pool", b"node_pool", "request", b"request"]) -> None: ...
429
+
430
+ global___NodeReservationState = NodeReservationState
431
+
432
+ class UserReservation(google.protobuf.message.Message):
433
+ """A container used for seeing existing node reservations"""
434
+
435
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
436
+
437
+ USER_FIELD_NUMBER: builtins.int
438
+ RESERVATION_FIELD_NUMBER: builtins.int
439
+ user: builtins.str
440
+ """The user who requested the reservation"""
441
+ @property
442
+ def reservation(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NodeReservationState]:
443
+ """List of requests. Each request allocates one node. If you want to allocate
444
+ multiple nodes of the same type, repeat the reservation.
445
+ """
446
+ def __init__(
447
+ self,
448
+ *,
449
+ user: builtins.str = ...,
450
+ reservation: collections.abc.Iterable[global___NodeReservationState] | None = ...,
451
+ ) -> None: ...
452
+ def ClearField(self, field_name: typing_extensions.Literal["reservation", b"reservation", "user", b"user"]) -> None: ...
453
+
454
+ global___UserReservation = UserReservation
455
+
456
+ class GeometryServiceClusterConfig(google.protobuf.message.Message):
457
+ """Used to configure the warmed-up jobs and their sizing for the geometry
458
+ service.
459
+ """
460
+
461
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
462
+
463
+ class HesaConfig(google.protobuf.message.Message):
464
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
465
+
466
+ NAMESPACE_FIELD_NUMBER: builtins.int
467
+ REGION_FIELD_NUMBER: builtins.int
468
+ CLUSTER_NAME_FIELD_NUMBER: builtins.int
469
+ PROJECT_FIELD_NUMBER: builtins.int
470
+ SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
471
+ KUEUE_QUEUE_FIELD_NUMBER: builtins.int
472
+ namespace: builtins.str
473
+ region: builtins.str
474
+ cluster_name: builtins.str
475
+ project: builtins.str
476
+ service_account: builtins.str
477
+ kueue_queue: builtins.str
478
+ def __init__(
479
+ self,
480
+ *,
481
+ namespace: builtins.str = ...,
482
+ region: builtins.str = ...,
483
+ cluster_name: builtins.str = ...,
484
+ project: builtins.str = ...,
485
+ service_account: builtins.str = ...,
486
+ kueue_queue: builtins.str = ...,
487
+ ) -> None: ...
488
+ def ClearField(self, field_name: typing_extensions.Literal["cluster_name", b"cluster_name", "kueue_queue", b"kueue_queue", "namespace", b"namespace", "project", b"project", "region", b"region", "service_account", b"service_account"]) -> None: ...
489
+
490
+ PEAK_WARMED_UP_JOBS_FIELD_NUMBER: builtins.int
491
+ NON_PEAK_WARMED_UP_JOBS_FIELD_NUMBER: builtins.int
492
+ CPU_REQUEST_FIELD_NUMBER: builtins.int
493
+ MEM_GIB_REQUEST_FIELD_NUMBER: builtins.int
494
+ PEAK_USAGE_WINDOW_FIELD_NUMBER: builtins.int
495
+ HESA_CONFIG_FIELD_NUMBER: builtins.int
496
+ peak_warmed_up_jobs: builtins.int
497
+ """Number of peak-warmed-up jobs."""
498
+ non_peak_warmed_up_jobs: builtins.int
499
+ """Number of non-peak-warmed-up jobs."""
500
+ cpu_request: builtins.float
501
+ """The k8s requests for the peak-warmed-up jobs. requests === limits."""
502
+ mem_gib_request: builtins.float
503
+ @property
504
+ def peak_usage_window(self) -> global___PeakUsageWindow:
505
+ """Peak usage configuration."""
506
+ @property
507
+ def hesa_config(self) -> global___GeometryServiceClusterConfig.HesaConfig: ...
508
+ def __init__(
509
+ self,
510
+ *,
511
+ peak_warmed_up_jobs: builtins.int = ...,
512
+ non_peak_warmed_up_jobs: builtins.int = ...,
513
+ cpu_request: builtins.float = ...,
514
+ mem_gib_request: builtins.float = ...,
515
+ peak_usage_window: global___PeakUsageWindow | None = ...,
516
+ hesa_config: global___GeometryServiceClusterConfig.HesaConfig | None = ...,
517
+ ) -> None: ...
518
+ def HasField(self, field_name: typing_extensions.Literal["hesa_config", b"hesa_config", "peak_usage_window", b"peak_usage_window"]) -> builtins.bool: ...
519
+ def ClearField(self, field_name: typing_extensions.Literal["cpu_request", b"cpu_request", "hesa_config", b"hesa_config", "mem_gib_request", b"mem_gib_request", "non_peak_warmed_up_jobs", b"non_peak_warmed_up_jobs", "peak_usage_window", b"peak_usage_window", "peak_warmed_up_jobs", b"peak_warmed_up_jobs"]) -> None: ...
520
+
521
+ global___GeometryServiceClusterConfig = GeometryServiceClusterConfig
522
+
523
+ class InferenceServiceSpec(google.protobuf.message.Message):
524
+ """Configuration for a single KServe InferenceService"""
525
+
526
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
527
+
528
+ class ResourceRequirements(google.protobuf.message.Message):
529
+ """k8s resource requests."""
530
+
531
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
532
+
533
+ CPU_REQUEST_FIELD_NUMBER: builtins.int
534
+ MEMORY_GIB_REQUEST_FIELD_NUMBER: builtins.int
535
+ GPU_REQUEST_FIELD_NUMBER: builtins.int
536
+ CPU_LIMIT_FIELD_NUMBER: builtins.int
537
+ MEMORY_GIB_LIMIT_FIELD_NUMBER: builtins.int
538
+ GPU_LIMIT_FIELD_NUMBER: builtins.int
539
+ cpu_request: builtins.float
540
+ memory_gib_request: builtins.float
541
+ gpu_request: builtins.int
542
+ cpu_limit: builtins.float
543
+ memory_gib_limit: builtins.float
544
+ gpu_limit: builtins.int
545
+ def __init__(
546
+ self,
547
+ *,
548
+ cpu_request: builtins.float = ...,
549
+ memory_gib_request: builtins.float = ...,
550
+ gpu_request: builtins.int = ...,
551
+ cpu_limit: builtins.float = ...,
552
+ memory_gib_limit: builtins.float = ...,
553
+ gpu_limit: builtins.int = ...,
554
+ ) -> None: ...
555
+ def ClearField(self, field_name: typing_extensions.Literal["cpu_limit", b"cpu_limit", "cpu_request", b"cpu_request", "gpu_limit", b"gpu_limit", "gpu_request", b"gpu_request", "memory_gib_limit", b"memory_gib_limit", "memory_gib_request", b"memory_gib_request"]) -> None: ...
556
+
557
+ class AutoscalingConfig(google.protobuf.message.Message):
558
+ """Autoscaling configuration"""
559
+
560
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
561
+
562
+ TARGET_CONCURRENCY_FIELD_NUMBER: builtins.int
563
+ SCALE_DOWN_DELAY_SECONDS_FIELD_NUMBER: builtins.int
564
+ MIN_REPLICAS_FIELD_NUMBER: builtins.int
565
+ MAX_REPLICAS_FIELD_NUMBER: builtins.int
566
+ CONTAINER_CONCURRENCY_FIELD_NUMBER: builtins.int
567
+ target_concurrency: builtins.int
568
+ scale_down_delay_seconds: builtins.int
569
+ min_replicas: builtins.int
570
+ max_replicas: builtins.int
571
+ container_concurrency: builtins.int
572
+ def __init__(
573
+ self,
574
+ *,
575
+ target_concurrency: builtins.int = ...,
576
+ scale_down_delay_seconds: builtins.int = ...,
577
+ min_replicas: builtins.int = ...,
578
+ max_replicas: builtins.int = ...,
579
+ container_concurrency: builtins.int = ...,
580
+ ) -> None: ...
581
+ def ClearField(self, field_name: typing_extensions.Literal["container_concurrency", b"container_concurrency", "max_replicas", b"max_replicas", "min_replicas", b"min_replicas", "scale_down_delay_seconds", b"scale_down_delay_seconds", "target_concurrency", b"target_concurrency"]) -> None: ...
582
+
583
+ class NodeSelectorEntry(google.protobuf.message.Message):
584
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
585
+
586
+ KEY_FIELD_NUMBER: builtins.int
587
+ VALUE_FIELD_NUMBER: builtins.int
588
+ key: builtins.str
589
+ value: builtins.str
590
+ def __init__(
591
+ self,
592
+ *,
593
+ key: builtins.str = ...,
594
+ value: builtins.str = ...,
595
+ ) -> None: ...
596
+ def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...
597
+
598
+ NAME_FIELD_NUMBER: builtins.int
599
+ IMAGE_FIELD_NUMBER: builtins.int
600
+ RESOURCES_FIELD_NUMBER: builtins.int
601
+ AUTOSCALING_FIELD_NUMBER: builtins.int
602
+ NODE_SELECTOR_FIELD_NUMBER: builtins.int
603
+ COMMAND_FIELD_NUMBER: builtins.int
604
+ name: builtins.str
605
+ """Name of the kserve InferenceService."""
606
+ image: builtins.str
607
+ """Docker image for the inference service."""
608
+ @property
609
+ def resources(self) -> global___InferenceServiceSpec.ResourceRequirements: ...
610
+ @property
611
+ def autoscaling(self) -> global___InferenceServiceSpec.AutoscalingConfig: ...
612
+ @property
613
+ def node_selector(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
614
+ @property
615
+ def command(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
616
+ def __init__(
617
+ self,
618
+ *,
619
+ name: builtins.str = ...,
620
+ image: builtins.str = ...,
621
+ resources: global___InferenceServiceSpec.ResourceRequirements | None = ...,
622
+ autoscaling: global___InferenceServiceSpec.AutoscalingConfig | None = ...,
623
+ node_selector: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
624
+ command: collections.abc.Iterable[builtins.str] | None = ...,
625
+ ) -> None: ...
626
+ def HasField(self, field_name: typing_extensions.Literal["autoscaling", b"autoscaling", "resources", b"resources"]) -> builtins.bool: ...
627
+ def ClearField(self, field_name: typing_extensions.Literal["autoscaling", b"autoscaling", "command", b"command", "image", b"image", "name", b"name", "node_selector", b"node_selector", "resources", b"resources"]) -> None: ...
628
+
629
+ global___InferenceServiceSpec = InferenceServiceSpec
630
+
631
+ class InferenceServiceClusterConfig(google.protobuf.message.Message):
632
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
633
+
634
+ class HesaConfig(google.protobuf.message.Message):
635
+ """Used to create the k8s client that will be used to connect to the cluster
636
+ where the services are deployed.
637
+ """
638
+
639
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
640
+
641
+ NAMESPACE_FIELD_NUMBER: builtins.int
642
+ REGION_FIELD_NUMBER: builtins.int
643
+ CLUSTER_NAME_FIELD_NUMBER: builtins.int
644
+ PROJECT_FIELD_NUMBER: builtins.int
645
+ SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
646
+ namespace: builtins.str
647
+ region: builtins.str
648
+ cluster_name: builtins.str
649
+ project: builtins.str
650
+ service_account: builtins.str
651
+ def __init__(
652
+ self,
653
+ *,
654
+ namespace: builtins.str = ...,
655
+ region: builtins.str = ...,
656
+ cluster_name: builtins.str = ...,
657
+ project: builtins.str = ...,
658
+ service_account: builtins.str = ...,
659
+ ) -> None: ...
660
+ def ClearField(self, field_name: typing_extensions.Literal["cluster_name", b"cluster_name", "namespace", b"namespace", "project", b"project", "region", b"region", "service_account", b"service_account"]) -> None: ...
661
+
662
+ HESA_CONFIG_FIELD_NUMBER: builtins.int
663
+ DEFAULT_CONFIG_FIELD_NUMBER: builtins.int
664
+ KSERVE_NAMESPACE_FIELD_NUMBER: builtins.int
665
+ KSERVE_INFERENCE_SERVICES_FIELD_NUMBER: builtins.int
666
+ USE_PER_ENV_INFERENCE_SERVICE_FIELD_NUMBER: builtins.int
667
+ @property
668
+ def hesa_config(self) -> global___InferenceServiceClusterConfig.HesaConfig: ...
669
+ @property
670
+ def default_config(self) -> global___InferenceServiceSpec:
671
+ """Default configuration applied to all inference services that will be
672
+ created by this service.
673
+ """
674
+ kserve_namespace: builtins.str
675
+ """Global kserve InferenceService endpoints not controlled by this service.
676
+ These services are deployed by separate teams but are still reachable
677
+ by the inference service.
678
+ """
679
+ @property
680
+ def kserve_inference_services(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
681
+ use_per_env_inference_service: builtins.bool
682
+ """Whether to use a per-environment InferenceService instead of using the
683
+ global one. If false, the service will not create and control ISVCs and
684
+ instead it will reach out to kserve_inference_services.
685
+ """
686
+ def __init__(
687
+ self,
688
+ *,
689
+ hesa_config: global___InferenceServiceClusterConfig.HesaConfig | None = ...,
690
+ default_config: global___InferenceServiceSpec | None = ...,
691
+ kserve_namespace: builtins.str = ...,
692
+ kserve_inference_services: collections.abc.Iterable[builtins.str] | None = ...,
693
+ use_per_env_inference_service: builtins.bool = ...,
694
+ ) -> None: ...
695
+ def HasField(self, field_name: typing_extensions.Literal["default_config", b"default_config", "hesa_config", b"hesa_config"]) -> builtins.bool: ...
696
+ def ClearField(self, field_name: typing_extensions.Literal["default_config", b"default_config", "hesa_config", b"hesa_config", "kserve_inference_services", b"kserve_inference_services", "kserve_namespace", b"kserve_namespace", "use_per_env_inference_service", b"use_per_env_inference_service"]) -> None: ...
697
+
698
+ global___InferenceServiceClusterConfig = InferenceServiceClusterConfig
699
+
700
+ class NodemanagerK8sConfig(google.protobuf.message.Message):
701
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
702
+
703
+ class HesaConfig(google.protobuf.message.Message):
704
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
705
+
706
+ NAMESPACE_FIELD_NUMBER: builtins.int
707
+ REGION_FIELD_NUMBER: builtins.int
708
+ CLUSTER_NAME_FIELD_NUMBER: builtins.int
709
+ PROJECT_FIELD_NUMBER: builtins.int
710
+ SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
711
+ namespace: builtins.str
712
+ region: builtins.str
713
+ cluster_name: builtins.str
714
+ project: builtins.str
715
+ service_account: builtins.str
716
+ def __init__(
717
+ self,
718
+ *,
719
+ namespace: builtins.str = ...,
720
+ region: builtins.str = ...,
721
+ cluster_name: builtins.str = ...,
722
+ project: builtins.str = ...,
723
+ service_account: builtins.str = ...,
724
+ ) -> None: ...
725
+ def ClearField(self, field_name: typing_extensions.Literal["cluster_name", b"cluster_name", "namespace", b"namespace", "project", b"project", "region", b"region", "service_account", b"service_account"]) -> None: ...
726
+
727
+ class HesaNodePool(google.protobuf.message.Message):
728
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
729
+
730
+ NODE_POOL_FIELD_NUMBER: builtins.int
731
+ WORKLOAD_PRIORITY_CLASS_FIELD_NUMBER: builtins.int
732
+ WORKLOAD_PRIORITY_CLASS_BATCH_FIELD_NUMBER: builtins.int
733
+ WORKLOAD_PRIORITY_CLASS_TRIAL_ACCOUNT_FIELD_NUMBER: builtins.int
734
+ WORKLOAD_PRIORITY_CLASS_TRIAL_ACCOUNT_BATCH_FIELD_NUMBER: builtins.int
735
+ WORKLOAD_PRIORITY_CLASS_PREEMPTION_FIELD_NUMBER: builtins.int
736
+ SUPPORTS_TAS_FIELD_NUMBER: builtins.int
737
+ @property
738
+ def node_pool(self) -> global___NodePool: ...
739
+ workload_priority_class: builtins.str
740
+ """Default workload priority class ala Kueue."""
741
+ workload_priority_class_batch: builtins.str
742
+ """Default workload priority class for batch jobs."""
743
+ workload_priority_class_trial_account: builtins.str
744
+ """Default workload priority class for trial account jobs."""
745
+ workload_priority_class_trial_account_batch: builtins.str
746
+ """Default workload priority class for trial account batch jobs."""
747
+ workload_priority_class_preemption: builtins.str
748
+ """Priority class that can be preempted. Use with care. Ignore if empty."""
749
+ supports_tas: builtins.bool
750
+ """Whether the node pool supports kueue's TAS. Autoscaling node pools do not
751
+ support TAS.
752
+ """
753
+ def __init__(
754
+ self,
755
+ *,
756
+ node_pool: global___NodePool | None = ...,
757
+ workload_priority_class: builtins.str = ...,
758
+ workload_priority_class_batch: builtins.str = ...,
759
+ workload_priority_class_trial_account: builtins.str = ...,
760
+ workload_priority_class_trial_account_batch: builtins.str = ...,
761
+ workload_priority_class_preemption: builtins.str = ...,
762
+ supports_tas: builtins.bool = ...,
763
+ ) -> None: ...
764
+ def HasField(self, field_name: typing_extensions.Literal["node_pool", b"node_pool"]) -> builtins.bool: ...
765
+ def ClearField(self, field_name: typing_extensions.Literal["node_pool", b"node_pool", "supports_tas", b"supports_tas", "workload_priority_class", b"workload_priority_class", "workload_priority_class_batch", b"workload_priority_class_batch", "workload_priority_class_preemption", b"workload_priority_class_preemption", "workload_priority_class_trial_account", b"workload_priority_class_trial_account", "workload_priority_class_trial_account_batch", b"workload_priority_class_trial_account_batch"]) -> None: ...
766
+
767
+ class ArgoConfig(google.protobuf.message.Message):
768
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
769
+
770
+ SERVICE_ACCOUNT_FIELD_NUMBER: builtins.int
771
+ TOLERATION_KEY_FIELD_NUMBER: builtins.int
772
+ service_account: builtins.str
773
+ """Service account to launch Argo Wfs. It should have enough permissions to
774
+ create resources in the namespace.
775
+ """
776
+ toleration_key: builtins.str
777
+ """Tolerations to be used for the Argo Wfs pods scheduling/assignment to
778
+ the nodes. We assume that this key is to be used with the Exists
779
+ operator and the NO_SCHEDULE effect.
780
+ """
781
+ def __init__(
782
+ self,
783
+ *,
784
+ service_account: builtins.str = ...,
785
+ toleration_key: builtins.str = ...,
786
+ ) -> None: ...
787
+ def ClearField(self, field_name: typing_extensions.Literal["service_account", b"service_account", "toleration_key", b"toleration_key"]) -> None: ...
788
+
789
+ HESA_CONFIG_FIELD_NUMBER: builtins.int
790
+ HESA_NODE_POOLS_FIELD_NUMBER: builtins.int
791
+ ARGO_CONFIG_FIELD_NUMBER: builtins.int
792
+ @property
793
+ def hesa_config(self) -> global___NodemanagerK8sConfig.HesaConfig: ...
794
+ @property
795
+ def hesa_node_pools(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NodemanagerK8sConfig.HesaNodePool]: ...
796
+ @property
797
+ def argo_config(self) -> global___NodemanagerK8sConfig.ArgoConfig: ...
798
+ def __init__(
799
+ self,
800
+ *,
801
+ hesa_config: global___NodemanagerK8sConfig.HesaConfig | None = ...,
802
+ hesa_node_pools: collections.abc.Iterable[global___NodemanagerK8sConfig.HesaNodePool] | None = ...,
803
+ argo_config: global___NodemanagerK8sConfig.ArgoConfig | None = ...,
804
+ ) -> None: ...
805
+ def HasField(self, field_name: typing_extensions.Literal["argo_config", b"argo_config", "hesa_config", b"hesa_config"]) -> builtins.bool: ...
806
+ def ClearField(self, field_name: typing_extensions.Literal["argo_config", b"argo_config", "hesa_config", b"hesa_config", "hesa_node_pools", b"hesa_node_pools"]) -> None: ...
807
+
808
+ global___NodemanagerK8sConfig = NodemanagerK8sConfig