anyscale 0.26.69__py3-none-any.whl → 0.26.71__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 (113) hide show
  1. anyscale/_private/anyscale_client/anyscale_client.py +126 -3
  2. anyscale/_private/anyscale_client/common.py +51 -2
  3. anyscale/_private/anyscale_client/fake_anyscale_client.py +103 -11
  4. anyscale/client/README.md +43 -4
  5. anyscale/client/openapi_client/__init__.py +30 -4
  6. anyscale/client/openapi_client/api/default_api.py +1769 -27
  7. anyscale/client/openapi_client/models/__init__.py +30 -4
  8. anyscale/client/openapi_client/models/api_key_info.py +29 -3
  9. anyscale/client/openapi_client/models/apply_autoscaling_config_update_model.py +350 -0
  10. anyscale/client/openapi_client/models/apply_multi_version_update_weights_update_model.py +152 -0
  11. anyscale/client/openapi_client/models/apply_production_service_multi_version_v2_model.py +207 -0
  12. anyscale/client/openapi_client/models/apply_production_service_v2_model.py +31 -3
  13. anyscale/client/openapi_client/models/apply_version_weight_update_model.py +181 -0
  14. anyscale/client/openapi_client/models/backend_server_api_product_models_catalog_client_models_table_metadata.py +546 -0
  15. anyscale/client/openapi_client/models/backend_server_api_product_models_data_catalogs_table_metadata.py +178 -0
  16. anyscale/client/openapi_client/models/baseimagesenum.py +139 -1
  17. anyscale/client/openapi_client/models/catalog_metadata.py +150 -0
  18. anyscale/client/openapi_client/models/cloud_data_bucket_file_type.py +2 -1
  19. anyscale/client/openapi_client/models/{oauthconnectionresponse_response.py → clouddeployment_response.py} +11 -11
  20. anyscale/client/openapi_client/models/column_info.py +265 -0
  21. anyscale/client/openapi_client/models/compute_node_type.py +29 -1
  22. anyscale/client/openapi_client/models/connection_metadata.py +206 -0
  23. anyscale/client/openapi_client/models/create_experimental_workspace.py +29 -1
  24. anyscale/client/openapi_client/models/create_workspace_from_template.py +29 -1
  25. anyscale/client/openapi_client/models/create_workspace_template_version.py +59 -3
  26. anyscale/client/openapi_client/models/data_catalog.py +45 -31
  27. anyscale/client/openapi_client/models/data_catalog_connection.py +74 -58
  28. anyscale/client/openapi_client/models/{ha_job_event_level.py → data_catalog_object_type.py} +7 -8
  29. anyscale/client/openapi_client/models/data_catalog_schema.py +324 -0
  30. anyscale/client/openapi_client/models/data_catalog_table.py +437 -0
  31. anyscale/client/openapi_client/models/data_catalog_volume.py +437 -0
  32. anyscale/client/openapi_client/models/datacatalogschema_list_response.py +147 -0
  33. anyscale/client/openapi_client/models/datacatalogtable_list_response.py +147 -0
  34. anyscale/client/openapi_client/models/datacatalogvolume_list_response.py +147 -0
  35. anyscale/client/openapi_client/models/decorated_list_service_api_model.py +58 -1
  36. anyscale/client/openapi_client/models/decorated_production_service_v2_api_model.py +60 -3
  37. anyscale/client/openapi_client/models/decorated_serve_deployment.py +27 -1
  38. anyscale/client/openapi_client/models/decorated_service_event_api_model.py +3 -3
  39. anyscale/client/openapi_client/models/decoratedproductionservicev2_versionapimodel_response.py +121 -0
  40. anyscale/client/openapi_client/models/describe_machine_pool_machines_filters.py +33 -5
  41. anyscale/client/openapi_client/models/describe_machine_pool_requests_filters.py +33 -5
  42. anyscale/client/openapi_client/models/describe_machine_pool_workloads_filters.py +33 -5
  43. anyscale/client/openapi_client/models/{service_event_level.py → entity_type.py} +9 -9
  44. anyscale/client/openapi_client/models/event_level.py +2 -1
  45. anyscale/client/openapi_client/models/job_event_fields.py +206 -0
  46. anyscale/client/openapi_client/models/machine_type_partition_filter.py +152 -0
  47. anyscale/client/openapi_client/models/partition_info.py +30 -1
  48. anyscale/client/openapi_client/models/physical_resources.py +178 -0
  49. anyscale/client/openapi_client/models/production_job_event.py +3 -3
  50. anyscale/client/openapi_client/models/rollout_strategy.py +2 -1
  51. anyscale/client/openapi_client/models/schema_metadata.py +150 -0
  52. anyscale/client/openapi_client/models/service_event_fields.py +318 -0
  53. anyscale/client/openapi_client/models/sso_config.py +18 -18
  54. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +139 -1
  55. anyscale/client/openapi_client/models/table_data_preview.py +209 -0
  56. anyscale/client/openapi_client/models/task_summary_config.py +29 -3
  57. anyscale/client/openapi_client/models/task_table_config.py +29 -3
  58. anyscale/client/openapi_client/models/unified_event.py +377 -0
  59. anyscale/client/openapi_client/models/unified_origin_filter.py +113 -0
  60. anyscale/client/openapi_client/models/unifiedevent_list_response.py +147 -0
  61. anyscale/client/openapi_client/models/volume_metadata.py +150 -0
  62. anyscale/client/openapi_client/models/worker_node_type.py +29 -1
  63. anyscale/client/openapi_client/models/workspace_event_fields.py +122 -0
  64. anyscale/client/openapi_client/models/workspace_template_version.py +58 -1
  65. anyscale/client/openapi_client/models/workspace_template_version_data_object.py +58 -1
  66. anyscale/cloud/models.py +2 -2
  67. anyscale/commands/cloud_commands.py +133 -2
  68. anyscale/commands/job_commands.py +121 -1
  69. anyscale/commands/job_queue_commands.py +99 -2
  70. anyscale/commands/service_commands.py +267 -67
  71. anyscale/commands/setup_k8s.py +546 -31
  72. anyscale/commands/util.py +104 -1
  73. anyscale/commands/workspace_commands.py +123 -5
  74. anyscale/commands/workspace_commands_v2.py +17 -1
  75. anyscale/compute_config/_private/compute_config_sdk.py +25 -12
  76. anyscale/compute_config/models.py +15 -0
  77. anyscale/controllers/cloud_controller.py +15 -2
  78. anyscale/controllers/job_controller.py +12 -0
  79. anyscale/controllers/kubernetes_verifier.py +80 -66
  80. anyscale/controllers/workspace_controller.py +67 -5
  81. anyscale/job/_private/job_sdk.py +50 -2
  82. anyscale/job/commands.py +3 -0
  83. anyscale/job/models.py +16 -0
  84. anyscale/job_queue/__init__.py +37 -1
  85. anyscale/job_queue/_private/job_queue_sdk.py +28 -1
  86. anyscale/job_queue/commands.py +61 -1
  87. anyscale/sdk/anyscale_client/__init__.py +1 -0
  88. anyscale/sdk/anyscale_client/api/default_api.py +12 -2
  89. anyscale/sdk/anyscale_client/models/__init__.py +1 -0
  90. anyscale/sdk/anyscale_client/models/apply_production_service_v2_model.py +31 -3
  91. anyscale/sdk/anyscale_client/models/apply_service_model.py +31 -3
  92. anyscale/sdk/anyscale_client/models/baseimagesenum.py +139 -1
  93. anyscale/sdk/anyscale_client/models/compute_node_type.py +29 -1
  94. anyscale/sdk/anyscale_client/models/physical_resources.py +178 -0
  95. anyscale/sdk/anyscale_client/models/rollout_strategy.py +2 -1
  96. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +139 -1
  97. anyscale/sdk/anyscale_client/models/worker_node_type.py +29 -1
  98. anyscale/service/__init__.py +51 -3
  99. anyscale/service/_private/service_sdk.py +481 -58
  100. anyscale/service/commands.py +90 -4
  101. anyscale/service/models.py +56 -0
  102. anyscale/shared_anyscale_utils/latest_ray_version.py +1 -1
  103. anyscale/version.py +1 -1
  104. anyscale/workspace/_private/workspace_sdk.py +1 -0
  105. anyscale/workspace/models.py +19 -0
  106. {anyscale-0.26.69.dist-info → anyscale-0.26.71.dist-info}/METADATA +1 -1
  107. {anyscale-0.26.69.dist-info → anyscale-0.26.71.dist-info}/RECORD +112 -85
  108. anyscale/client/openapi_client/models/o_auth_connection_response.py +0 -229
  109. {anyscale-0.26.69.dist-info → anyscale-0.26.71.dist-info}/WHEEL +0 -0
  110. {anyscale-0.26.69.dist-info → anyscale-0.26.71.dist-info}/entry_points.txt +0 -0
  111. {anyscale-0.26.69.dist-info → anyscale-0.26.71.dist-info}/licenses/LICENSE +0 -0
  112. {anyscale-0.26.69.dist-info → anyscale-0.26.71.dist-info}/licenses/NOTICE +0 -0
  113. {anyscale-0.26.69.dist-info → anyscale-0.26.71.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- from typing import List, Optional
1
+ from typing import Dict, List, Optional
2
2
 
3
3
  from anyscale._private.models.model_base import ResultIterator
4
4
  from anyscale._private.workload import WorkloadSDK
@@ -12,6 +12,9 @@ from anyscale.client.openapi_client.models.job_queue_sort_directive import (
12
12
  from anyscale.client.openapi_client.models.list_response_metadata import (
13
13
  ListResponseMetadata,
14
14
  )
15
+ from anyscale.client.openapi_client.models.resource_tag_resource_type import (
16
+ ResourceTagResourceType,
17
+ )
15
18
  from anyscale.client.openapi_client.models.session_state import SessionState
16
19
  from anyscale.job_queue.models import JobQueueStatus
17
20
 
@@ -28,6 +31,7 @@ class PrivateJobQueueSDK(WorkloadSDK):
28
31
  cloud: Optional[str] = None,
29
32
  project: Optional[str] = None,
30
33
  cluster_status: Optional[SessionState] = None,
34
+ tags_filter: Optional[Dict[str, List[str]]] = None,
31
35
  page_size: Optional[int] = None,
32
36
  max_items: Optional[int] = None,
33
37
  sorting_directives: Optional[List[JobQueueSortDirective]] = None,
@@ -69,6 +73,7 @@ class PrivateJobQueueSDK(WorkloadSDK):
69
73
  cloud=cloud,
70
74
  project=project,
71
75
  cluster_status=cluster_status,
76
+ tags_filter=tags_filter,
72
77
  count=page_size,
73
78
  paging_token=token,
74
79
  sorting_directives=sorting_directives,
@@ -112,6 +117,28 @@ class PrivateJobQueueSDK(WorkloadSDK):
112
117
 
113
118
  return _parse_decorated_jq_to_status(updated_jq)
114
119
 
120
+ def add_tags(
121
+ self,
122
+ *,
123
+ job_queue_id: Optional[str] = None,
124
+ name: Optional[str] = None,
125
+ tags: Dict[str, str],
126
+ ) -> None:
127
+ jq = self._resolve_to_job_queue_model(job_queue_id=job_queue_id, name=name)
128
+ assert jq.id is not None
129
+ self.client.upsert_resource_tags(ResourceTagResourceType.JOB_QUEUE, jq.id, tags)
130
+
131
+ def remove_tags(
132
+ self,
133
+ *,
134
+ job_queue_id: Optional[str] = None,
135
+ name: Optional[str] = None,
136
+ keys: List[str],
137
+ ) -> None:
138
+ jq = self._resolve_to_job_queue_model(job_queue_id=job_queue_id, name=name)
139
+ assert jq.id is not None
140
+ self.client.delete_resource_tags(ResourceTagResourceType.JOB_QUEUE, jq.id, keys)
141
+
115
142
  def _resolve_to_job_queue_model(
116
143
  self, *, job_queue_id: Optional[str] = None, name: Optional[str] = None,
117
144
  ) -> DecoratedJobQueue:
@@ -1,4 +1,4 @@
1
- from typing import List, Optional
1
+ from typing import Dict, List, Optional
2
2
 
3
3
  from anyscale._private.models.model_base import ResultIterator
4
4
  from anyscale._private.sdk import sdk_command
@@ -58,6 +58,30 @@ _UPDATE_ARG_DOCSTRINGS = {
58
58
  "idle_timeout_s": "New idle timeout in seconds.",
59
59
  }
60
60
 
61
+ _TAGS_ADD_EXAMPLE = """
62
+ import anyscale
63
+
64
+ anyscale.job_queue.add_tags(job_queue_id="jobq_abc123", tags={"team": "mlops"})
65
+ """
66
+
67
+ _TAGS_ADD_ARG_DOCSTRINGS = {
68
+ "job_queue_id": "ID of the job queue to tag (alternative to name).",
69
+ "name": "Name of the job queue to tag (alternative to ID).",
70
+ "tags": "Key/value tags to upsert as a map {key: value}.",
71
+ }
72
+
73
+ _TAGS_REMOVE_EXAMPLE = """
74
+ import anyscale
75
+
76
+ anyscale.job_queue.remove_tags(job_queue_id="jobq_abc123", keys=["team"])
77
+ """
78
+
79
+ _TAGS_REMOVE_ARG_DOCSTRINGS = {
80
+ "job_queue_id": "ID of the job queue to modify (alternative to name).",
81
+ "name": "Name of the job queue to modify (alternative to ID).",
82
+ "keys": "List of tag keys to remove.",
83
+ }
84
+
61
85
 
62
86
  @sdk_command(
63
87
  _JOB_QUEUE_SDK_SINGLETON_KEY,
@@ -73,6 +97,7 @@ def list( # noqa: A001
73
97
  cloud: Optional[str] = None,
74
98
  project: Optional[str] = None,
75
99
  cluster_status: Optional[SessionState] = None,
100
+ tags_filter: Optional[Dict[str, List[str]]] = None,
76
101
  page_size: Optional[int] = None,
77
102
  max_items: Optional[int] = None,
78
103
  sorting_directives: Optional[List[JobQueueSortDirective]] = None,
@@ -86,6 +111,7 @@ def list( # noqa: A001
86
111
  cloud=cloud,
87
112
  project=project,
88
113
  cluster_status=cluster_status,
114
+ tags_filter=tags_filter,
89
115
  page_size=page_size,
90
116
  max_items=max_items,
91
117
  sorting_directives=sorting_directives,
@@ -128,3 +154,37 @@ def update(
128
154
  max_concurrency=max_concurrency,
129
155
  idle_timeout_s=idle_timeout_s,
130
156
  )
157
+
158
+
159
+ @sdk_command(
160
+ _JOB_QUEUE_SDK_SINGLETON_KEY,
161
+ PrivateJobQueueSDK,
162
+ doc_py_example=_TAGS_ADD_EXAMPLE,
163
+ arg_docstrings=_TAGS_ADD_ARG_DOCSTRINGS,
164
+ )
165
+ def add_tags(
166
+ *,
167
+ job_queue_id: Optional[str] = None,
168
+ name: Optional[str] = None,
169
+ tags: Dict[str, str],
170
+ _private_sdk: Optional[PrivateJobQueueSDK] = None,
171
+ ) -> None:
172
+ """Upsert tags for a job queue."""
173
+ return _private_sdk.add_tags(job_queue_id=job_queue_id, name=name, tags=tags) # type: ignore
174
+
175
+
176
+ @sdk_command(
177
+ _JOB_QUEUE_SDK_SINGLETON_KEY,
178
+ PrivateJobQueueSDK,
179
+ doc_py_example=_TAGS_REMOVE_EXAMPLE,
180
+ arg_docstrings=_TAGS_REMOVE_ARG_DOCSTRINGS,
181
+ )
182
+ def remove_tags(
183
+ *,
184
+ job_queue_id: Optional[str] = None,
185
+ name: Optional[str] = None,
186
+ keys: List[str],
187
+ _private_sdk: Optional[PrivateJobQueueSDK] = None,
188
+ ) -> None:
189
+ """Remove tags by key from a job queue."""
190
+ return _private_sdk.remove_tags(job_queue_id=job_queue_id, name=name, keys=keys) # type: ignore
@@ -133,6 +133,7 @@ from anyscale_client.models.organization import Organization
133
133
  from anyscale_client.models.organization_response import OrganizationResponse
134
134
  from anyscale_client.models.page_query import PageQuery
135
135
  from anyscale_client.models.pause_schedule import PauseSchedule
136
+ from anyscale_client.models.physical_resources import PhysicalResources
136
137
  from anyscale_client.models.production_job import ProductionJob
137
138
  from anyscale_client.models.production_job_config import ProductionJobConfig
138
139
  from anyscale_client.models.production_job_state_transition import ProductionJobStateTransition
@@ -2696,6 +2696,7 @@ class DefaultApi(object):
2696
2696
 
2697
2697
  :param async_req bool: execute request asynchronously
2698
2698
  :param str cloud_id: The cloud id whose default cluster compute you want to fetch. If None, will use the default cloud.
2699
+ :param str cloud_resource_id: The cloud resource ID to fetch the default cluster compute for. If None, will use the primary cloud resource of the cloud.
2699
2700
  :param _preload_content: if False, the urllib3.HTTPResponse object will
2700
2701
  be returned without reading/decoding response
2701
2702
  data. Default is True.
@@ -2721,6 +2722,7 @@ class DefaultApi(object):
2721
2722
 
2722
2723
  :param async_req bool: execute request asynchronously
2723
2724
  :param str cloud_id: The cloud id whose default cluster compute you want to fetch. If None, will use the default cloud.
2725
+ :param str cloud_resource_id: The cloud resource ID to fetch the default cluster compute for. If None, will use the primary cloud resource of the cloud.
2724
2726
  :param _return_http_data_only: response data without head status code
2725
2727
  and headers
2726
2728
  :param _preload_content: if False, the urllib3.HTTPResponse object will
@@ -2738,7 +2740,8 @@ class DefaultApi(object):
2738
2740
  local_var_params = locals()
2739
2741
 
2740
2742
  all_params = [
2741
- 'cloud_id'
2743
+ 'cloud_id',
2744
+ 'cloud_resource_id'
2742
2745
  ]
2743
2746
  all_params.extend(
2744
2747
  [
@@ -2765,6 +2768,8 @@ class DefaultApi(object):
2765
2768
  query_params = []
2766
2769
  if 'cloud_id' in local_var_params and local_var_params['cloud_id'] is not None: # noqa: E501
2767
2770
  query_params.append(('cloud_id', local_var_params['cloud_id'])) # noqa: E501
2771
+ if 'cloud_resource_id' in local_var_params and local_var_params['cloud_resource_id'] is not None: # noqa: E501
2772
+ query_params.append(('cloud_resource_id', local_var_params['cloud_resource_id'])) # noqa: E501
2768
2773
 
2769
2774
  header_params = {}
2770
2775
 
@@ -2929,6 +2934,7 @@ class DefaultApi(object):
2929
2934
 
2930
2935
  :param async_req bool: execute request asynchronously
2931
2936
  :param str cloud_id: (required)
2937
+ :param str cloud_resource_id:
2932
2938
  :param _preload_content: if False, the urllib3.HTTPResponse object will
2933
2939
  be returned without reading/decoding response
2934
2940
  data. Default is True.
@@ -2954,6 +2960,7 @@ class DefaultApi(object):
2954
2960
 
2955
2961
  :param async_req bool: execute request asynchronously
2956
2962
  :param str cloud_id: (required)
2963
+ :param str cloud_resource_id:
2957
2964
  :param _return_http_data_only: response data without head status code
2958
2965
  and headers
2959
2966
  :param _preload_content: if False, the urllib3.HTTPResponse object will
@@ -2971,7 +2978,8 @@ class DefaultApi(object):
2971
2978
  local_var_params = locals()
2972
2979
 
2973
2980
  all_params = [
2974
- 'cloud_id'
2981
+ 'cloud_id',
2982
+ 'cloud_resource_id'
2975
2983
  ]
2976
2984
  all_params.extend(
2977
2985
  [
@@ -3002,6 +3010,8 @@ class DefaultApi(object):
3002
3010
  path_params['cloud_id'] = local_var_params['cloud_id'] # noqa: E501
3003
3011
 
3004
3012
  query_params = []
3013
+ if 'cloud_resource_id' in local_var_params and local_var_params['cloud_resource_id'] is not None: # noqa: E501
3014
+ query_params.append(('cloud_resource_id', local_var_params['cloud_resource_id'])) # noqa: E501
3005
3015
 
3006
3016
  header_params = {}
3007
3017
 
@@ -119,6 +119,7 @@ from anyscale_client.models.organization import Organization
119
119
  from anyscale_client.models.organization_response import OrganizationResponse
120
120
  from anyscale_client.models.page_query import PageQuery
121
121
  from anyscale_client.models.pause_schedule import PauseSchedule
122
+ from anyscale_client.models.physical_resources import PhysicalResources
122
123
  from anyscale_client.models.production_job import ProductionJob
123
124
  from anyscale_client.models.production_job_config import ProductionJobConfig
124
125
  from anyscale_client.models.production_job_state_transition import ProductionJobStateTransition
@@ -47,7 +47,8 @@ class ApplyProductionServiceV2Model(object):
47
47
  'tracing_config': 'TracingConfig',
48
48
  'auto_complete_rollout': 'bool',
49
49
  'max_surge_percent': 'int',
50
- 'tags': 'dict(str, str)'
50
+ 'tags': 'dict(str, str)',
51
+ 'traffic_percent': 'int'
51
52
  }
52
53
 
53
54
  attribute_map = {
@@ -65,10 +66,11 @@ class ApplyProductionServiceV2Model(object):
65
66
  'tracing_config': 'tracing_config',
66
67
  'auto_complete_rollout': 'auto_complete_rollout',
67
68
  'max_surge_percent': 'max_surge_percent',
68
- 'tags': 'tags'
69
+ 'tags': 'tags',
70
+ 'traffic_percent': 'traffic_percent'
69
71
  }
70
72
 
71
- def __init__(self, name=None, description=None, project_id=None, version=None, canary_percent=None, ray_serve_config=None, build_id=None, compute_config_id=None, config=None, rollout_strategy=None, ray_gcs_external_storage_config=None, tracing_config=None, auto_complete_rollout=True, max_surge_percent=None, tags=None, local_vars_configuration=None): # noqa: E501
73
+ def __init__(self, name=None, description=None, project_id=None, version=None, canary_percent=None, ray_serve_config=None, build_id=None, compute_config_id=None, config=None, rollout_strategy=None, ray_gcs_external_storage_config=None, tracing_config=None, auto_complete_rollout=True, max_surge_percent=None, tags=None, traffic_percent=None, local_vars_configuration=None): # noqa: E501
72
74
  """ApplyProductionServiceV2Model - a model defined in OpenAPI""" # noqa: E501
73
75
  if local_vars_configuration is None:
74
76
  local_vars_configuration = Configuration()
@@ -89,6 +91,7 @@ class ApplyProductionServiceV2Model(object):
89
91
  self._auto_complete_rollout = None
90
92
  self._max_surge_percent = None
91
93
  self._tags = None
94
+ self._traffic_percent = None
92
95
  self.discriminator = None
93
96
 
94
97
  self.name = name
@@ -117,6 +120,8 @@ class ApplyProductionServiceV2Model(object):
117
120
  self.max_surge_percent = max_surge_percent
118
121
  if tags is not None:
119
122
  self.tags = tags
123
+ if traffic_percent is not None:
124
+ self.traffic_percent = traffic_percent
120
125
 
121
126
  @property
122
127
  def name(self):
@@ -471,6 +476,29 @@ class ApplyProductionServiceV2Model(object):
471
476
 
472
477
  self._tags = tags
473
478
 
479
+ @property
480
+ def traffic_percent(self):
481
+ """Gets the traffic_percent of this ApplyProductionServiceV2Model. # noqa: E501
482
+
483
+ Percentage of traffic forwarded to a particular service version from the ALB. # noqa: E501
484
+
485
+ :return: The traffic_percent of this ApplyProductionServiceV2Model. # noqa: E501
486
+ :rtype: int
487
+ """
488
+ return self._traffic_percent
489
+
490
+ @traffic_percent.setter
491
+ def traffic_percent(self, traffic_percent):
492
+ """Sets the traffic_percent of this ApplyProductionServiceV2Model.
493
+
494
+ Percentage of traffic forwarded to a particular service version from the ALB. # noqa: E501
495
+
496
+ :param traffic_percent: The traffic_percent of this ApplyProductionServiceV2Model. # noqa: E501
497
+ :type: int
498
+ """
499
+
500
+ self._traffic_percent = traffic_percent
501
+
474
502
  def to_dict(self):
475
503
  """Returns the model properties as a dict"""
476
504
  result = {}
@@ -47,7 +47,8 @@ class ApplyServiceModel(object):
47
47
  'tracing_config': 'TracingConfig',
48
48
  'auto_complete_rollout': 'bool',
49
49
  'max_surge_percent': 'int',
50
- 'tags': 'dict(str, str)'
50
+ 'tags': 'dict(str, str)',
51
+ 'traffic_percent': 'int'
51
52
  }
52
53
 
53
54
  attribute_map = {
@@ -65,10 +66,11 @@ class ApplyServiceModel(object):
65
66
  'tracing_config': 'tracing_config',
66
67
  'auto_complete_rollout': 'auto_complete_rollout',
67
68
  'max_surge_percent': 'max_surge_percent',
68
- 'tags': 'tags'
69
+ 'tags': 'tags',
70
+ 'traffic_percent': 'traffic_percent'
69
71
  }
70
72
 
71
- def __init__(self, name=None, description=None, project_id=None, version=None, canary_percent=None, ray_serve_config=None, build_id=None, compute_config_id=None, config=None, rollout_strategy=None, ray_gcs_external_storage_config=None, tracing_config=None, auto_complete_rollout=True, max_surge_percent=None, tags=None, local_vars_configuration=None): # noqa: E501
73
+ def __init__(self, name=None, description=None, project_id=None, version=None, canary_percent=None, ray_serve_config=None, build_id=None, compute_config_id=None, config=None, rollout_strategy=None, ray_gcs_external_storage_config=None, tracing_config=None, auto_complete_rollout=True, max_surge_percent=None, tags=None, traffic_percent=None, local_vars_configuration=None): # noqa: E501
72
74
  """ApplyServiceModel - a model defined in OpenAPI""" # noqa: E501
73
75
  if local_vars_configuration is None:
74
76
  local_vars_configuration = Configuration()
@@ -89,6 +91,7 @@ class ApplyServiceModel(object):
89
91
  self._auto_complete_rollout = None
90
92
  self._max_surge_percent = None
91
93
  self._tags = None
94
+ self._traffic_percent = None
92
95
  self.discriminator = None
93
96
 
94
97
  self.name = name
@@ -117,6 +120,8 @@ class ApplyServiceModel(object):
117
120
  self.max_surge_percent = max_surge_percent
118
121
  if tags is not None:
119
122
  self.tags = tags
123
+ if traffic_percent is not None:
124
+ self.traffic_percent = traffic_percent
120
125
 
121
126
  @property
122
127
  def name(self):
@@ -471,6 +476,29 @@ class ApplyServiceModel(object):
471
476
 
472
477
  self._tags = tags
473
478
 
479
+ @property
480
+ def traffic_percent(self):
481
+ """Gets the traffic_percent of this ApplyServiceModel. # noqa: E501
482
+
483
+ Percentage of traffic forwarded to a particular service version from the ALB. # noqa: E501
484
+
485
+ :return: The traffic_percent of this ApplyServiceModel. # noqa: E501
486
+ :rtype: int
487
+ """
488
+ return self._traffic_percent
489
+
490
+ @traffic_percent.setter
491
+ def traffic_percent(self, traffic_percent):
492
+ """Sets the traffic_percent of this ApplyServiceModel.
493
+
494
+ Percentage of traffic forwarded to a particular service version from the ALB. # noqa: E501
495
+
496
+ :param traffic_percent: The traffic_percent of this ApplyServiceModel. # noqa: E501
497
+ :type: int
498
+ """
499
+
500
+ self._traffic_percent = traffic_percent
501
+
474
502
  def to_dict(self):
475
503
  """Returns the model properties as a dict"""
476
504
  result = {}