pulumi-datarobot 0.10.14__tar.gz → 0.10.17__tar.gz

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 (58) hide show
  1. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/PKG-INFO +43 -3
  2. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/README.md +42 -2
  3. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/_inputs.py +20 -0
  4. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/deployment.py +6 -0
  5. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/outputs.py +15 -1
  6. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/playground.py +48 -1
  7. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot.egg-info/PKG-INFO +43 -3
  8. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/setup.py +1 -1
  9. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/__init__.py +0 -0
  10. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/_utilities.py +0 -0
  11. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/api_token_credential.py +0 -0
  12. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/app_oauth.py +0 -0
  13. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/application_source.py +0 -0
  14. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/application_source_from_template.py +0 -0
  15. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/aws_credential.py +0 -0
  16. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/azure_credential.py +0 -0
  17. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/basic_credential.py +0 -0
  18. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/batch_prediction_job_definition.py +0 -0
  19. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/config/__init__.py +0 -0
  20. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/config/vars.py +0 -0
  21. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_application.py +0 -0
  22. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_application_from_environment.py +0 -0
  23. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_job.py +0 -0
  24. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_metric.py +0 -0
  25. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_metric_from_job.py +0 -0
  26. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_metric_job.py +0 -0
  27. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_model.py +0 -0
  28. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/custom_model_llm_validation.py +0 -0
  29. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/dataset_from_datasource.py +0 -0
  30. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/dataset_from_file.py +0 -0
  31. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/dataset_from_url.py +0 -0
  32. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/datasource.py +0 -0
  33. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/datastore.py +0 -0
  34. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/deployment_retraining_policy.py +0 -0
  35. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/execution_environment.py +0 -0
  36. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/get_execution_environment.py +0 -0
  37. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/get_global_model.py +0 -0
  38. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/google_cloud_credential.py +0 -0
  39. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/llm_blueprint.py +0 -0
  40. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/notebook.py +0 -0
  41. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/notification_channel.py +0 -0
  42. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/notification_policy.py +0 -0
  43. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/prediction_environment.py +0 -0
  44. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/provider.py +0 -0
  45. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/pulumi-plugin.json +0 -0
  46. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/py.typed +0 -0
  47. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/qa_application.py +0 -0
  48. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/registered_model.py +0 -0
  49. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/registered_model_from_leaderboard.py +0 -0
  50. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/remote_repository.py +0 -0
  51. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/use_case.py +0 -0
  52. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot/vector_database.py +0 -0
  53. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot.egg-info/SOURCES.txt +0 -0
  54. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot.egg-info/dependency_links.txt +0 -0
  55. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot.egg-info/not-zip-safe +0 -0
  56. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot.egg-info/requires.txt +0 -0
  57. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/pulumi_datarobot.egg-info/top_level.txt +0 -0
  58. {pulumi_datarobot-0.10.14 → pulumi_datarobot-0.10.17}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pulumi_datarobot
3
- Version: 0.10.14
3
+ Version: 0.10.17
4
4
  Summary: A Pulumi package for creating and managing DataRobot resources.
5
5
  Home-page: https://www.datarobot.com
6
6
  License: Apache-2.0
@@ -82,7 +82,7 @@ Keep the following items in mind if running in an air-gapped environment:
82
82
  - Run `pulumi login --local` to store state files on your local filesystem, instead of the default Pulumi Cloud. Pulumi binaries are available [here](https://www.pulumi.com/docs/iac/download-install/).
83
83
  - Set `DATAROBOT_ENDPOINT`: https://{datarobot.example.com}/api/v2
84
84
  (replacing {datarobot.example.com} with your specific deployment endpoint)
85
- - For Python, the [pulumi](https://pypi.org/project/pulumi/) and [pulumi-datarobot](https://pypi.org/project/pulumi-datarobot/) packages must be installed in the air-gapped system.
85
+ - For Python, the [pulumi](https://pypi.org/project/pulumi/) and [pulumi-datarobot](https://pypi.org/project/pulumi-datarobot/) packages must be installed in the air-gapped system.
86
86
 
87
87
  Example using `pip wheel`:
88
88
 
@@ -118,5 +118,45 @@ Keep the following items in mind if running in an air-gapped environment:
118
118
  now install wheels from the folder.
119
119
 
120
120
  ```bash
121
- pip install * -f ./ --no-index
121
+ pip install * -f ./ --no-index
122
122
  ```
123
+
124
+ You will also need to download the binary plugin from this repository. Click on the version that matches the Python package
125
+ version from our [Releases](https://github.com/datarobot-community/pulumi-datarobot/releases) page, download the tar.gz
126
+ for the correct architecture of your computer. For Codespaces, that is `*-linux-amd64.tar.gz`. After you've extracted it
127
+ install it with:
128
+
129
+ ```bash
130
+ pulumi plugin install resource datarobot <version> -f <path-to-extracted-folder>
131
+ ```
132
+
133
+ ## Rate limited by GitHub?
134
+
135
+ > [!IMPORTANT]
136
+ > GitHub has hard limits on API calls that cannot be changed. If you are
137
+ running into this when running deployment tasks you have a couple of
138
+ options. You can wait until the [rate
139
+ limit](https://docs.github.com/en/enterprise-cloud@latest/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#primary-rate-limit-for-unauthenticated-users)
140
+ expires or you can do a direct download from the releases page which
141
+ will not use the API and hit the limit.
142
+
143
+ To directly download the plugin and bypass the GitHub API run:
144
+ ```bash
145
+ pulumi plugin install resource datarobot <version> --server https://github.com/datarobot-community/pulumi-datarobot/releases/download/<version>/
146
+ ```
147
+ For example, to download version **0.10.14**, you can run:
148
+
149
+ ```bash
150
+ pulumi plugin install resource datarobot v0.10.14 --server https://github.com/datarobot-community/pulumi-datarobot/releases/download/v0.10.14/
151
+ ```
152
+ prior to running the deploy to directly install the plugin.
153
+
154
+ After you have it downloaded, it will still attempt to query for
155
+ updates via the GitHub API that can trigger rate limits. To bypass
156
+ that, set the environment variable: `PULUMI_SKIP_UPDATE_CHECK`
157
+
158
+ ```bash
159
+ export PULUMI_SKIP_UPDATE_CHECK=1
160
+ # OR
161
+ export PULUMI_SKIP_UPDATE_CHECK=true
162
+ ```
@@ -71,7 +71,7 @@ Keep the following items in mind if running in an air-gapped environment:
71
71
  - Run `pulumi login --local` to store state files on your local filesystem, instead of the default Pulumi Cloud. Pulumi binaries are available [here](https://www.pulumi.com/docs/iac/download-install/).
72
72
  - Set `DATAROBOT_ENDPOINT`: https://{datarobot.example.com}/api/v2
73
73
  (replacing {datarobot.example.com} with your specific deployment endpoint)
74
- - For Python, the [pulumi](https://pypi.org/project/pulumi/) and [pulumi-datarobot](https://pypi.org/project/pulumi-datarobot/) packages must be installed in the air-gapped system.
74
+ - For Python, the [pulumi](https://pypi.org/project/pulumi/) and [pulumi-datarobot](https://pypi.org/project/pulumi-datarobot/) packages must be installed in the air-gapped system.
75
75
 
76
76
  Example using `pip wheel`:
77
77
 
@@ -107,5 +107,45 @@ Keep the following items in mind if running in an air-gapped environment:
107
107
  now install wheels from the folder.
108
108
 
109
109
  ```bash
110
- pip install * -f ./ --no-index
110
+ pip install * -f ./ --no-index
111
111
  ```
112
+
113
+ You will also need to download the binary plugin from this repository. Click on the version that matches the Python package
114
+ version from our [Releases](https://github.com/datarobot-community/pulumi-datarobot/releases) page, download the tar.gz
115
+ for the correct architecture of your computer. For Codespaces, that is `*-linux-amd64.tar.gz`. After you've extracted it
116
+ install it with:
117
+
118
+ ```bash
119
+ pulumi plugin install resource datarobot <version> -f <path-to-extracted-folder>
120
+ ```
121
+
122
+ ## Rate limited by GitHub?
123
+
124
+ > [!IMPORTANT]
125
+ > GitHub has hard limits on API calls that cannot be changed. If you are
126
+ running into this when running deployment tasks you have a couple of
127
+ options. You can wait until the [rate
128
+ limit](https://docs.github.com/en/enterprise-cloud@latest/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#primary-rate-limit-for-unauthenticated-users)
129
+ expires or you can do a direct download from the releases page which
130
+ will not use the API and hit the limit.
131
+
132
+ To directly download the plugin and bypass the GitHub API run:
133
+ ```bash
134
+ pulumi plugin install resource datarobot <version> --server https://github.com/datarobot-community/pulumi-datarobot/releases/download/<version>/
135
+ ```
136
+ For example, to download version **0.10.14**, you can run:
137
+
138
+ ```bash
139
+ pulumi plugin install resource datarobot v0.10.14 --server https://github.com/datarobot-community/pulumi-datarobot/releases/download/v0.10.14/
140
+ ```
141
+ prior to running the deploy to directly install the plugin.
142
+
143
+ After you have it downloaded, it will still attempt to query for
144
+ updates via the GitHub API that can trigger rate limits. To bypass
145
+ that, set the environment variable: `PULUMI_SKIP_UPDATE_CHECK`
146
+
147
+ ```bash
148
+ export PULUMI_SKIP_UPDATE_CHECK=1
149
+ # OR
150
+ export PULUMI_SKIP_UPDATE_CHECK=true
151
+ ```
@@ -5896,6 +5896,10 @@ class LlmBlueprintCustomModelLlmSettingsArgs:
5896
5896
 
5897
5897
  if not MYPY:
5898
5898
  class LlmBlueprintLlmSettingsArgsDict(TypedDict):
5899
+ custom_model_id: NotRequired[pulumi.Input[builtins.str]]
5900
+ """
5901
+ The ID of the custom model to use via chat completion interface.
5902
+ """
5899
5903
  max_completion_length: NotRequired[pulumi.Input[builtins.int]]
5900
5904
  """
5901
5905
  The maximum number of tokens allowed in the completion. The combined count of this value and prompt tokens must be below the model's maximum context size, where prompt token count is comprised of system prompt, user prompt, recent chat history, and vector database citations.
@@ -5918,16 +5922,20 @@ elif False:
5918
5922
  @pulumi.input_type
5919
5923
  class LlmBlueprintLlmSettingsArgs:
5920
5924
  def __init__(__self__, *,
5925
+ custom_model_id: Optional[pulumi.Input[builtins.str]] = None,
5921
5926
  max_completion_length: Optional[pulumi.Input[builtins.int]] = None,
5922
5927
  system_prompt: Optional[pulumi.Input[builtins.str]] = None,
5923
5928
  temperature: Optional[pulumi.Input[builtins.float]] = None,
5924
5929
  top_p: Optional[pulumi.Input[builtins.float]] = None):
5925
5930
  """
5931
+ :param pulumi.Input[builtins.str] custom_model_id: The ID of the custom model to use via chat completion interface.
5926
5932
  :param pulumi.Input[builtins.int] max_completion_length: The maximum number of tokens allowed in the completion. The combined count of this value and prompt tokens must be below the model's maximum context size, where prompt token count is comprised of system prompt, user prompt, recent chat history, and vector database citations.
5927
5933
  :param pulumi.Input[builtins.str] system_prompt: Guides the style of the LLM response. It is a 'universal' prompt, prepended to all individual prompts.
5928
5934
  :param pulumi.Input[builtins.float] temperature: Controls the randomness of model output, where higher values return more diverse output and lower values return more deterministic results.
5929
5935
  :param pulumi.Input[builtins.float] top_p: Threshold that controls the selection of words included in the response, based on a cumulative probability cutoff for token selection. Higher numbers return more diverse options for outputs.
5930
5936
  """
5937
+ if custom_model_id is not None:
5938
+ pulumi.set(__self__, "custom_model_id", custom_model_id)
5931
5939
  if max_completion_length is not None:
5932
5940
  pulumi.set(__self__, "max_completion_length", max_completion_length)
5933
5941
  if system_prompt is not None:
@@ -5937,6 +5945,18 @@ class LlmBlueprintLlmSettingsArgs:
5937
5945
  if top_p is not None:
5938
5946
  pulumi.set(__self__, "top_p", top_p)
5939
5947
 
5948
+ @property
5949
+ @pulumi.getter(name="customModelId")
5950
+ def custom_model_id(self) -> Optional[pulumi.Input[builtins.str]]:
5951
+ """
5952
+ The ID of the custom model to use via chat completion interface.
5953
+ """
5954
+ return pulumi.get(self, "custom_model_id")
5955
+
5956
+ @custom_model_id.setter
5957
+ def custom_model_id(self, value: Optional[pulumi.Input[builtins.str]]):
5958
+ pulumi.set(self, "custom_model_id", value)
5959
+
5940
5960
  @property
5941
5961
  @pulumi.getter(name="maxCompletionLength")
5942
5962
  def max_completion_length(self) -> Optional[pulumi.Input[builtins.int]]:
@@ -775,6 +775,9 @@ class Deployment(pulumi.CustomResource):
775
775
  "value": "val",
776
776
  }],
777
777
  retraining_settings={})
778
+ # Note: Deployment operations can take significant time, especially for GPU provisioning.
779
+ # Use DATAROBOT_TIMEOUT_MINUTES environment variable to increase the default 30-minute timeout:
780
+ # export DATAROBOT_TIMEOUT_MINUTES="120" # 2 hours for GPU deployments
778
781
  pulumi.export("datarobotDeploymentId", example_deployment.id)
779
782
  ```
780
783
 
@@ -852,6 +855,9 @@ class Deployment(pulumi.CustomResource):
852
855
  "value": "val",
853
856
  }],
854
857
  retraining_settings={})
858
+ # Note: Deployment operations can take significant time, especially for GPU provisioning.
859
+ # Use DATAROBOT_TIMEOUT_MINUTES environment variable to increase the default 30-minute timeout:
860
+ # export DATAROBOT_TIMEOUT_MINUTES="120" # 2 hours for GPU deployments
855
861
  pulumi.export("datarobotDeploymentId", example_deployment.id)
856
862
  ```
857
863
 
@@ -4548,7 +4548,9 @@ class LlmBlueprintLlmSettings(dict):
4548
4548
  @staticmethod
4549
4549
  def __key_warning(key: str):
4550
4550
  suggest = None
4551
- if key == "maxCompletionLength":
4551
+ if key == "customModelId":
4552
+ suggest = "custom_model_id"
4553
+ elif key == "maxCompletionLength":
4552
4554
  suggest = "max_completion_length"
4553
4555
  elif key == "systemPrompt":
4554
4556
  suggest = "system_prompt"
@@ -4567,16 +4569,20 @@ class LlmBlueprintLlmSettings(dict):
4567
4569
  return super().get(key, default)
4568
4570
 
4569
4571
  def __init__(__self__, *,
4572
+ custom_model_id: Optional[builtins.str] = None,
4570
4573
  max_completion_length: Optional[builtins.int] = None,
4571
4574
  system_prompt: Optional[builtins.str] = None,
4572
4575
  temperature: Optional[builtins.float] = None,
4573
4576
  top_p: Optional[builtins.float] = None):
4574
4577
  """
4578
+ :param builtins.str custom_model_id: The ID of the custom model to use via chat completion interface.
4575
4579
  :param builtins.int max_completion_length: The maximum number of tokens allowed in the completion. The combined count of this value and prompt tokens must be below the model's maximum context size, where prompt token count is comprised of system prompt, user prompt, recent chat history, and vector database citations.
4576
4580
  :param builtins.str system_prompt: Guides the style of the LLM response. It is a 'universal' prompt, prepended to all individual prompts.
4577
4581
  :param builtins.float temperature: Controls the randomness of model output, where higher values return more diverse output and lower values return more deterministic results.
4578
4582
  :param builtins.float top_p: Threshold that controls the selection of words included in the response, based on a cumulative probability cutoff for token selection. Higher numbers return more diverse options for outputs.
4579
4583
  """
4584
+ if custom_model_id is not None:
4585
+ pulumi.set(__self__, "custom_model_id", custom_model_id)
4580
4586
  if max_completion_length is not None:
4581
4587
  pulumi.set(__self__, "max_completion_length", max_completion_length)
4582
4588
  if system_prompt is not None:
@@ -4586,6 +4592,14 @@ class LlmBlueprintLlmSettings(dict):
4586
4592
  if top_p is not None:
4587
4593
  pulumi.set(__self__, "top_p", top_p)
4588
4594
 
4595
+ @property
4596
+ @pulumi.getter(name="customModelId")
4597
+ def custom_model_id(self) -> Optional[builtins.str]:
4598
+ """
4599
+ The ID of the custom model to use via chat completion interface.
4600
+ """
4601
+ return pulumi.get(self, "custom_model_id")
4602
+
4589
4603
  @property
4590
4604
  @pulumi.getter(name="maxCompletionLength")
4591
4605
  def max_completion_length(self) -> Optional[builtins.int]:
@@ -22,18 +22,22 @@ class PlaygroundArgs:
22
22
  def __init__(__self__, *,
23
23
  use_case_id: pulumi.Input[builtins.str],
24
24
  description: Optional[pulumi.Input[builtins.str]] = None,
25
- name: Optional[pulumi.Input[builtins.str]] = None):
25
+ name: Optional[pulumi.Input[builtins.str]] = None,
26
+ playground_type: Optional[pulumi.Input[builtins.str]] = None):
26
27
  """
27
28
  The set of arguments for constructing a Playground resource.
28
29
  :param pulumi.Input[builtins.str] use_case_id: The id of the Playground.
29
30
  :param pulumi.Input[builtins.str] description: The description of the Playground.
30
31
  :param pulumi.Input[builtins.str] name: The name of the Playground.
32
+ :param pulumi.Input[builtins.str] playground_type: The type of the Playground, either 'rag' (default) or 'agentic'.
31
33
  """
32
34
  pulumi.set(__self__, "use_case_id", use_case_id)
33
35
  if description is not None:
34
36
  pulumi.set(__self__, "description", description)
35
37
  if name is not None:
36
38
  pulumi.set(__self__, "name", name)
39
+ if playground_type is not None:
40
+ pulumi.set(__self__, "playground_type", playground_type)
37
41
 
38
42
  @property
39
43
  @pulumi.getter(name="useCaseId")
@@ -71,23 +75,39 @@ class PlaygroundArgs:
71
75
  def name(self, value: Optional[pulumi.Input[builtins.str]]):
72
76
  pulumi.set(self, "name", value)
73
77
 
78
+ @property
79
+ @pulumi.getter(name="playgroundType")
80
+ def playground_type(self) -> Optional[pulumi.Input[builtins.str]]:
81
+ """
82
+ The type of the Playground, either 'rag' (default) or 'agentic'.
83
+ """
84
+ return pulumi.get(self, "playground_type")
85
+
86
+ @playground_type.setter
87
+ def playground_type(self, value: Optional[pulumi.Input[builtins.str]]):
88
+ pulumi.set(self, "playground_type", value)
89
+
74
90
 
75
91
  @pulumi.input_type
76
92
  class _PlaygroundState:
77
93
  def __init__(__self__, *,
78
94
  description: Optional[pulumi.Input[builtins.str]] = None,
79
95
  name: Optional[pulumi.Input[builtins.str]] = None,
96
+ playground_type: Optional[pulumi.Input[builtins.str]] = None,
80
97
  use_case_id: Optional[pulumi.Input[builtins.str]] = None):
81
98
  """
82
99
  Input properties used for looking up and filtering Playground resources.
83
100
  :param pulumi.Input[builtins.str] description: The description of the Playground.
84
101
  :param pulumi.Input[builtins.str] name: The name of the Playground.
102
+ :param pulumi.Input[builtins.str] playground_type: The type of the Playground, either 'rag' (default) or 'agentic'.
85
103
  :param pulumi.Input[builtins.str] use_case_id: The id of the Playground.
86
104
  """
87
105
  if description is not None:
88
106
  pulumi.set(__self__, "description", description)
89
107
  if name is not None:
90
108
  pulumi.set(__self__, "name", name)
109
+ if playground_type is not None:
110
+ pulumi.set(__self__, "playground_type", playground_type)
91
111
  if use_case_id is not None:
92
112
  pulumi.set(__self__, "use_case_id", use_case_id)
93
113
 
@@ -115,6 +135,18 @@ class _PlaygroundState:
115
135
  def name(self, value: Optional[pulumi.Input[builtins.str]]):
116
136
  pulumi.set(self, "name", value)
117
137
 
138
+ @property
139
+ @pulumi.getter(name="playgroundType")
140
+ def playground_type(self) -> Optional[pulumi.Input[builtins.str]]:
141
+ """
142
+ The type of the Playground, either 'rag' (default) or 'agentic'.
143
+ """
144
+ return pulumi.get(self, "playground_type")
145
+
146
+ @playground_type.setter
147
+ def playground_type(self, value: Optional[pulumi.Input[builtins.str]]):
148
+ pulumi.set(self, "playground_type", value)
149
+
118
150
  @property
119
151
  @pulumi.getter(name="useCaseId")
120
152
  def use_case_id(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -135,6 +167,7 @@ class Playground(pulumi.CustomResource):
135
167
  opts: Optional[pulumi.ResourceOptions] = None,
136
168
  description: Optional[pulumi.Input[builtins.str]] = None,
137
169
  name: Optional[pulumi.Input[builtins.str]] = None,
170
+ playground_type: Optional[pulumi.Input[builtins.str]] = None,
138
171
  use_case_id: Optional[pulumi.Input[builtins.str]] = None,
139
172
  __props__=None):
140
173
  """
@@ -155,6 +188,7 @@ class Playground(pulumi.CustomResource):
155
188
  :param pulumi.ResourceOptions opts: Options for the resource.
156
189
  :param pulumi.Input[builtins.str] description: The description of the Playground.
157
190
  :param pulumi.Input[builtins.str] name: The name of the Playground.
191
+ :param pulumi.Input[builtins.str] playground_type: The type of the Playground, either 'rag' (default) or 'agentic'.
158
192
  :param pulumi.Input[builtins.str] use_case_id: The id of the Playground.
159
193
  """
160
194
  ...
@@ -194,6 +228,7 @@ class Playground(pulumi.CustomResource):
194
228
  opts: Optional[pulumi.ResourceOptions] = None,
195
229
  description: Optional[pulumi.Input[builtins.str]] = None,
196
230
  name: Optional[pulumi.Input[builtins.str]] = None,
231
+ playground_type: Optional[pulumi.Input[builtins.str]] = None,
197
232
  use_case_id: Optional[pulumi.Input[builtins.str]] = None,
198
233
  __props__=None):
199
234
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -206,6 +241,7 @@ class Playground(pulumi.CustomResource):
206
241
 
207
242
  __props__.__dict__["description"] = description
208
243
  __props__.__dict__["name"] = name
244
+ __props__.__dict__["playground_type"] = playground_type
209
245
  if use_case_id is None and not opts.urn:
210
246
  raise TypeError("Missing required property 'use_case_id'")
211
247
  __props__.__dict__["use_case_id"] = use_case_id
@@ -221,6 +257,7 @@ class Playground(pulumi.CustomResource):
221
257
  opts: Optional[pulumi.ResourceOptions] = None,
222
258
  description: Optional[pulumi.Input[builtins.str]] = None,
223
259
  name: Optional[pulumi.Input[builtins.str]] = None,
260
+ playground_type: Optional[pulumi.Input[builtins.str]] = None,
224
261
  use_case_id: Optional[pulumi.Input[builtins.str]] = None) -> 'Playground':
225
262
  """
226
263
  Get an existing Playground resource's state with the given name, id, and optional extra
@@ -231,6 +268,7 @@ class Playground(pulumi.CustomResource):
231
268
  :param pulumi.ResourceOptions opts: Options for the resource.
232
269
  :param pulumi.Input[builtins.str] description: The description of the Playground.
233
270
  :param pulumi.Input[builtins.str] name: The name of the Playground.
271
+ :param pulumi.Input[builtins.str] playground_type: The type of the Playground, either 'rag' (default) or 'agentic'.
234
272
  :param pulumi.Input[builtins.str] use_case_id: The id of the Playground.
235
273
  """
236
274
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -239,6 +277,7 @@ class Playground(pulumi.CustomResource):
239
277
 
240
278
  __props__.__dict__["description"] = description
241
279
  __props__.__dict__["name"] = name
280
+ __props__.__dict__["playground_type"] = playground_type
242
281
  __props__.__dict__["use_case_id"] = use_case_id
243
282
  return Playground(resource_name, opts=opts, __props__=__props__)
244
283
 
@@ -258,6 +297,14 @@ class Playground(pulumi.CustomResource):
258
297
  """
259
298
  return pulumi.get(self, "name")
260
299
 
300
+ @property
301
+ @pulumi.getter(name="playgroundType")
302
+ def playground_type(self) -> pulumi.Output[builtins.str]:
303
+ """
304
+ The type of the Playground, either 'rag' (default) or 'agentic'.
305
+ """
306
+ return pulumi.get(self, "playground_type")
307
+
261
308
  @property
262
309
  @pulumi.getter(name="useCaseId")
263
310
  def use_case_id(self) -> pulumi.Output[builtins.str]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pulumi-datarobot
3
- Version: 0.10.14
3
+ Version: 0.10.17
4
4
  Summary: A Pulumi package for creating and managing DataRobot resources.
5
5
  Home-page: https://www.datarobot.com
6
6
  License: Apache-2.0
@@ -82,7 +82,7 @@ Keep the following items in mind if running in an air-gapped environment:
82
82
  - Run `pulumi login --local` to store state files on your local filesystem, instead of the default Pulumi Cloud. Pulumi binaries are available [here](https://www.pulumi.com/docs/iac/download-install/).
83
83
  - Set `DATAROBOT_ENDPOINT`: https://{datarobot.example.com}/api/v2
84
84
  (replacing {datarobot.example.com} with your specific deployment endpoint)
85
- - For Python, the [pulumi](https://pypi.org/project/pulumi/) and [pulumi-datarobot](https://pypi.org/project/pulumi-datarobot/) packages must be installed in the air-gapped system.
85
+ - For Python, the [pulumi](https://pypi.org/project/pulumi/) and [pulumi-datarobot](https://pypi.org/project/pulumi-datarobot/) packages must be installed in the air-gapped system.
86
86
 
87
87
  Example using `pip wheel`:
88
88
 
@@ -118,5 +118,45 @@ Keep the following items in mind if running in an air-gapped environment:
118
118
  now install wheels from the folder.
119
119
 
120
120
  ```bash
121
- pip install * -f ./ --no-index
121
+ pip install * -f ./ --no-index
122
122
  ```
123
+
124
+ You will also need to download the binary plugin from this repository. Click on the version that matches the Python package
125
+ version from our [Releases](https://github.com/datarobot-community/pulumi-datarobot/releases) page, download the tar.gz
126
+ for the correct architecture of your computer. For Codespaces, that is `*-linux-amd64.tar.gz`. After you've extracted it
127
+ install it with:
128
+
129
+ ```bash
130
+ pulumi plugin install resource datarobot <version> -f <path-to-extracted-folder>
131
+ ```
132
+
133
+ ## Rate limited by GitHub?
134
+
135
+ > [!IMPORTANT]
136
+ > GitHub has hard limits on API calls that cannot be changed. If you are
137
+ running into this when running deployment tasks you have a couple of
138
+ options. You can wait until the [rate
139
+ limit](https://docs.github.com/en/enterprise-cloud@latest/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#primary-rate-limit-for-unauthenticated-users)
140
+ expires or you can do a direct download from the releases page which
141
+ will not use the API and hit the limit.
142
+
143
+ To directly download the plugin and bypass the GitHub API run:
144
+ ```bash
145
+ pulumi plugin install resource datarobot <version> --server https://github.com/datarobot-community/pulumi-datarobot/releases/download/<version>/
146
+ ```
147
+ For example, to download version **0.10.14**, you can run:
148
+
149
+ ```bash
150
+ pulumi plugin install resource datarobot v0.10.14 --server https://github.com/datarobot-community/pulumi-datarobot/releases/download/v0.10.14/
151
+ ```
152
+ prior to running the deploy to directly install the plugin.
153
+
154
+ After you have it downloaded, it will still attempt to query for
155
+ updates via the GitHub API that can trigger rate limits. To bypass
156
+ that, set the environment variable: `PULUMI_SKIP_UPDATE_CHECK`
157
+
158
+ ```bash
159
+ export PULUMI_SKIP_UPDATE_CHECK=1
160
+ # OR
161
+ export PULUMI_SKIP_UPDATE_CHECK=true
162
+ ```
@@ -9,7 +9,7 @@ from setuptools.command.install import install
9
9
  from subprocess import check_call
10
10
 
11
11
 
12
- VERSION = "0.10.14"
12
+ VERSION = "0.10.17"
13
13
  def readme():
14
14
  try:
15
15
  with open('README.md', encoding='utf-8') as f: