pulumi-oci 1.19.0a1705698401__py3-none-any.whl → 1.20.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.
@@ -0,0 +1,717 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['EndpointArgs', 'Endpoint']
15
+
16
+ @pulumi.input_type
17
+ class EndpointArgs:
18
+ def __init__(__self__, *,
19
+ compartment_id: pulumi.Input[str],
20
+ dedicated_ai_cluster_id: pulumi.Input[str],
21
+ model_id: pulumi.Input[str],
22
+ content_moderation_config: Optional[pulumi.Input['EndpointContentModerationConfigArgs']] = None,
23
+ defined_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
24
+ description: Optional[pulumi.Input[str]] = None,
25
+ display_name: Optional[pulumi.Input[str]] = None,
26
+ freeform_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None):
27
+ """
28
+ The set of arguments for constructing a Endpoint resource.
29
+ :param pulumi.Input[str] compartment_id: (Updatable) The compartment OCID to create the endpoint in.
30
+ :param pulumi.Input[str] dedicated_ai_cluster_id: The OCID of the dedicated AI cluster on which a model will be deployed to.
31
+ :param pulumi.Input[str] model_id: The ID of the model that's used to create this endpoint.
32
+
33
+
34
+ ** IMPORTANT **
35
+ Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
36
+ :param pulumi.Input['EndpointContentModerationConfigArgs'] content_moderation_config: (Updatable) The configuration details, whether to add the content moderation feature to the model. Content moderation removes toxic and biased content from responses. It's recommended to use content moderation.
37
+ :param pulumi.Input[Mapping[str, Any]] defined_tags: (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
38
+ :param pulumi.Input[str] description: (Updatable) An optional description of the endpoint.
39
+ :param pulumi.Input[str] display_name: (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.
40
+ :param pulumi.Input[Mapping[str, Any]] freeform_tags: (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
41
+ """
42
+ pulumi.set(__self__, "compartment_id", compartment_id)
43
+ pulumi.set(__self__, "dedicated_ai_cluster_id", dedicated_ai_cluster_id)
44
+ pulumi.set(__self__, "model_id", model_id)
45
+ if content_moderation_config is not None:
46
+ pulumi.set(__self__, "content_moderation_config", content_moderation_config)
47
+ if defined_tags is not None:
48
+ pulumi.set(__self__, "defined_tags", defined_tags)
49
+ if description is not None:
50
+ pulumi.set(__self__, "description", description)
51
+ if display_name is not None:
52
+ pulumi.set(__self__, "display_name", display_name)
53
+ if freeform_tags is not None:
54
+ pulumi.set(__self__, "freeform_tags", freeform_tags)
55
+
56
+ @property
57
+ @pulumi.getter(name="compartmentId")
58
+ def compartment_id(self) -> pulumi.Input[str]:
59
+ """
60
+ (Updatable) The compartment OCID to create the endpoint in.
61
+ """
62
+ return pulumi.get(self, "compartment_id")
63
+
64
+ @compartment_id.setter
65
+ def compartment_id(self, value: pulumi.Input[str]):
66
+ pulumi.set(self, "compartment_id", value)
67
+
68
+ @property
69
+ @pulumi.getter(name="dedicatedAiClusterId")
70
+ def dedicated_ai_cluster_id(self) -> pulumi.Input[str]:
71
+ """
72
+ The OCID of the dedicated AI cluster on which a model will be deployed to.
73
+ """
74
+ return pulumi.get(self, "dedicated_ai_cluster_id")
75
+
76
+ @dedicated_ai_cluster_id.setter
77
+ def dedicated_ai_cluster_id(self, value: pulumi.Input[str]):
78
+ pulumi.set(self, "dedicated_ai_cluster_id", value)
79
+
80
+ @property
81
+ @pulumi.getter(name="modelId")
82
+ def model_id(self) -> pulumi.Input[str]:
83
+ """
84
+ The ID of the model that's used to create this endpoint.
85
+
86
+
87
+ ** IMPORTANT **
88
+ Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
89
+ """
90
+ return pulumi.get(self, "model_id")
91
+
92
+ @model_id.setter
93
+ def model_id(self, value: pulumi.Input[str]):
94
+ pulumi.set(self, "model_id", value)
95
+
96
+ @property
97
+ @pulumi.getter(name="contentModerationConfig")
98
+ def content_moderation_config(self) -> Optional[pulumi.Input['EndpointContentModerationConfigArgs']]:
99
+ """
100
+ (Updatable) The configuration details, whether to add the content moderation feature to the model. Content moderation removes toxic and biased content from responses. It's recommended to use content moderation.
101
+ """
102
+ return pulumi.get(self, "content_moderation_config")
103
+
104
+ @content_moderation_config.setter
105
+ def content_moderation_config(self, value: Optional[pulumi.Input['EndpointContentModerationConfigArgs']]):
106
+ pulumi.set(self, "content_moderation_config", value)
107
+
108
+ @property
109
+ @pulumi.getter(name="definedTags")
110
+ def defined_tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
111
+ """
112
+ (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
113
+ """
114
+ return pulumi.get(self, "defined_tags")
115
+
116
+ @defined_tags.setter
117
+ def defined_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
118
+ pulumi.set(self, "defined_tags", value)
119
+
120
+ @property
121
+ @pulumi.getter
122
+ def description(self) -> Optional[pulumi.Input[str]]:
123
+ """
124
+ (Updatable) An optional description of the endpoint.
125
+ """
126
+ return pulumi.get(self, "description")
127
+
128
+ @description.setter
129
+ def description(self, value: Optional[pulumi.Input[str]]):
130
+ pulumi.set(self, "description", value)
131
+
132
+ @property
133
+ @pulumi.getter(name="displayName")
134
+ def display_name(self) -> Optional[pulumi.Input[str]]:
135
+ """
136
+ (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.
137
+ """
138
+ return pulumi.get(self, "display_name")
139
+
140
+ @display_name.setter
141
+ def display_name(self, value: Optional[pulumi.Input[str]]):
142
+ pulumi.set(self, "display_name", value)
143
+
144
+ @property
145
+ @pulumi.getter(name="freeformTags")
146
+ def freeform_tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
147
+ """
148
+ (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
149
+ """
150
+ return pulumi.get(self, "freeform_tags")
151
+
152
+ @freeform_tags.setter
153
+ def freeform_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
154
+ pulumi.set(self, "freeform_tags", value)
155
+
156
+
157
+ @pulumi.input_type
158
+ class _EndpointState:
159
+ def __init__(__self__, *,
160
+ compartment_id: Optional[pulumi.Input[str]] = None,
161
+ content_moderation_config: Optional[pulumi.Input['EndpointContentModerationConfigArgs']] = None,
162
+ dedicated_ai_cluster_id: Optional[pulumi.Input[str]] = None,
163
+ defined_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
164
+ description: Optional[pulumi.Input[str]] = None,
165
+ display_name: Optional[pulumi.Input[str]] = None,
166
+ freeform_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
167
+ lifecycle_details: Optional[pulumi.Input[str]] = None,
168
+ model_id: Optional[pulumi.Input[str]] = None,
169
+ state: Optional[pulumi.Input[str]] = None,
170
+ system_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
171
+ time_created: Optional[pulumi.Input[str]] = None,
172
+ time_updated: Optional[pulumi.Input[str]] = None):
173
+ """
174
+ Input properties used for looking up and filtering Endpoint resources.
175
+ :param pulumi.Input[str] compartment_id: (Updatable) The compartment OCID to create the endpoint in.
176
+ :param pulumi.Input['EndpointContentModerationConfigArgs'] content_moderation_config: (Updatable) The configuration details, whether to add the content moderation feature to the model. Content moderation removes toxic and biased content from responses. It's recommended to use content moderation.
177
+ :param pulumi.Input[str] dedicated_ai_cluster_id: The OCID of the dedicated AI cluster on which a model will be deployed to.
178
+ :param pulumi.Input[Mapping[str, Any]] defined_tags: (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
179
+ :param pulumi.Input[str] description: (Updatable) An optional description of the endpoint.
180
+ :param pulumi.Input[str] display_name: (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.
181
+ :param pulumi.Input[Mapping[str, Any]] freeform_tags: (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
182
+ :param pulumi.Input[str] lifecycle_details: A message describing the current state of the endpoint in more detail that can provide actionable information.
183
+ :param pulumi.Input[str] model_id: The ID of the model that's used to create this endpoint.
184
+
185
+
186
+ ** IMPORTANT **
187
+ Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
188
+ :param pulumi.Input[str] state: The current state of the endpoint.
189
+ :param pulumi.Input[Mapping[str, Any]] system_tags: System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
190
+ :param pulumi.Input[str] time_created: The date and time that the endpoint was created in the format of an RFC3339 datetime string.
191
+ :param pulumi.Input[str] time_updated: The date and time that the endpoint was updated in the format of an RFC3339 datetime string.
192
+ """
193
+ if compartment_id is not None:
194
+ pulumi.set(__self__, "compartment_id", compartment_id)
195
+ if content_moderation_config is not None:
196
+ pulumi.set(__self__, "content_moderation_config", content_moderation_config)
197
+ if dedicated_ai_cluster_id is not None:
198
+ pulumi.set(__self__, "dedicated_ai_cluster_id", dedicated_ai_cluster_id)
199
+ if defined_tags is not None:
200
+ pulumi.set(__self__, "defined_tags", defined_tags)
201
+ if description is not None:
202
+ pulumi.set(__self__, "description", description)
203
+ if display_name is not None:
204
+ pulumi.set(__self__, "display_name", display_name)
205
+ if freeform_tags is not None:
206
+ pulumi.set(__self__, "freeform_tags", freeform_tags)
207
+ if lifecycle_details is not None:
208
+ pulumi.set(__self__, "lifecycle_details", lifecycle_details)
209
+ if model_id is not None:
210
+ pulumi.set(__self__, "model_id", model_id)
211
+ if state is not None:
212
+ pulumi.set(__self__, "state", state)
213
+ if system_tags is not None:
214
+ pulumi.set(__self__, "system_tags", system_tags)
215
+ if time_created is not None:
216
+ pulumi.set(__self__, "time_created", time_created)
217
+ if time_updated is not None:
218
+ pulumi.set(__self__, "time_updated", time_updated)
219
+
220
+ @property
221
+ @pulumi.getter(name="compartmentId")
222
+ def compartment_id(self) -> Optional[pulumi.Input[str]]:
223
+ """
224
+ (Updatable) The compartment OCID to create the endpoint in.
225
+ """
226
+ return pulumi.get(self, "compartment_id")
227
+
228
+ @compartment_id.setter
229
+ def compartment_id(self, value: Optional[pulumi.Input[str]]):
230
+ pulumi.set(self, "compartment_id", value)
231
+
232
+ @property
233
+ @pulumi.getter(name="contentModerationConfig")
234
+ def content_moderation_config(self) -> Optional[pulumi.Input['EndpointContentModerationConfigArgs']]:
235
+ """
236
+ (Updatable) The configuration details, whether to add the content moderation feature to the model. Content moderation removes toxic and biased content from responses. It's recommended to use content moderation.
237
+ """
238
+ return pulumi.get(self, "content_moderation_config")
239
+
240
+ @content_moderation_config.setter
241
+ def content_moderation_config(self, value: Optional[pulumi.Input['EndpointContentModerationConfigArgs']]):
242
+ pulumi.set(self, "content_moderation_config", value)
243
+
244
+ @property
245
+ @pulumi.getter(name="dedicatedAiClusterId")
246
+ def dedicated_ai_cluster_id(self) -> Optional[pulumi.Input[str]]:
247
+ """
248
+ The OCID of the dedicated AI cluster on which a model will be deployed to.
249
+ """
250
+ return pulumi.get(self, "dedicated_ai_cluster_id")
251
+
252
+ @dedicated_ai_cluster_id.setter
253
+ def dedicated_ai_cluster_id(self, value: Optional[pulumi.Input[str]]):
254
+ pulumi.set(self, "dedicated_ai_cluster_id", value)
255
+
256
+ @property
257
+ @pulumi.getter(name="definedTags")
258
+ def defined_tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
259
+ """
260
+ (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
261
+ """
262
+ return pulumi.get(self, "defined_tags")
263
+
264
+ @defined_tags.setter
265
+ def defined_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
266
+ pulumi.set(self, "defined_tags", value)
267
+
268
+ @property
269
+ @pulumi.getter
270
+ def description(self) -> Optional[pulumi.Input[str]]:
271
+ """
272
+ (Updatable) An optional description of the endpoint.
273
+ """
274
+ return pulumi.get(self, "description")
275
+
276
+ @description.setter
277
+ def description(self, value: Optional[pulumi.Input[str]]):
278
+ pulumi.set(self, "description", value)
279
+
280
+ @property
281
+ @pulumi.getter(name="displayName")
282
+ def display_name(self) -> Optional[pulumi.Input[str]]:
283
+ """
284
+ (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.
285
+ """
286
+ return pulumi.get(self, "display_name")
287
+
288
+ @display_name.setter
289
+ def display_name(self, value: Optional[pulumi.Input[str]]):
290
+ pulumi.set(self, "display_name", value)
291
+
292
+ @property
293
+ @pulumi.getter(name="freeformTags")
294
+ def freeform_tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
295
+ """
296
+ (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
297
+ """
298
+ return pulumi.get(self, "freeform_tags")
299
+
300
+ @freeform_tags.setter
301
+ def freeform_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
302
+ pulumi.set(self, "freeform_tags", value)
303
+
304
+ @property
305
+ @pulumi.getter(name="lifecycleDetails")
306
+ def lifecycle_details(self) -> Optional[pulumi.Input[str]]:
307
+ """
308
+ A message describing the current state of the endpoint in more detail that can provide actionable information.
309
+ """
310
+ return pulumi.get(self, "lifecycle_details")
311
+
312
+ @lifecycle_details.setter
313
+ def lifecycle_details(self, value: Optional[pulumi.Input[str]]):
314
+ pulumi.set(self, "lifecycle_details", value)
315
+
316
+ @property
317
+ @pulumi.getter(name="modelId")
318
+ def model_id(self) -> Optional[pulumi.Input[str]]:
319
+ """
320
+ The ID of the model that's used to create this endpoint.
321
+
322
+
323
+ ** IMPORTANT **
324
+ Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
325
+ """
326
+ return pulumi.get(self, "model_id")
327
+
328
+ @model_id.setter
329
+ def model_id(self, value: Optional[pulumi.Input[str]]):
330
+ pulumi.set(self, "model_id", value)
331
+
332
+ @property
333
+ @pulumi.getter
334
+ def state(self) -> Optional[pulumi.Input[str]]:
335
+ """
336
+ The current state of the endpoint.
337
+ """
338
+ return pulumi.get(self, "state")
339
+
340
+ @state.setter
341
+ def state(self, value: Optional[pulumi.Input[str]]):
342
+ pulumi.set(self, "state", value)
343
+
344
+ @property
345
+ @pulumi.getter(name="systemTags")
346
+ def system_tags(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
347
+ """
348
+ System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
349
+ """
350
+ return pulumi.get(self, "system_tags")
351
+
352
+ @system_tags.setter
353
+ def system_tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
354
+ pulumi.set(self, "system_tags", value)
355
+
356
+ @property
357
+ @pulumi.getter(name="timeCreated")
358
+ def time_created(self) -> Optional[pulumi.Input[str]]:
359
+ """
360
+ The date and time that the endpoint was created in the format of an RFC3339 datetime string.
361
+ """
362
+ return pulumi.get(self, "time_created")
363
+
364
+ @time_created.setter
365
+ def time_created(self, value: Optional[pulumi.Input[str]]):
366
+ pulumi.set(self, "time_created", value)
367
+
368
+ @property
369
+ @pulumi.getter(name="timeUpdated")
370
+ def time_updated(self) -> Optional[pulumi.Input[str]]:
371
+ """
372
+ The date and time that the endpoint was updated in the format of an RFC3339 datetime string.
373
+ """
374
+ return pulumi.get(self, "time_updated")
375
+
376
+ @time_updated.setter
377
+ def time_updated(self, value: Optional[pulumi.Input[str]]):
378
+ pulumi.set(self, "time_updated", value)
379
+
380
+
381
+ class Endpoint(pulumi.CustomResource):
382
+ @overload
383
+ def __init__(__self__,
384
+ resource_name: str,
385
+ opts: Optional[pulumi.ResourceOptions] = None,
386
+ compartment_id: Optional[pulumi.Input[str]] = None,
387
+ content_moderation_config: Optional[pulumi.Input[pulumi.InputType['EndpointContentModerationConfigArgs']]] = None,
388
+ dedicated_ai_cluster_id: Optional[pulumi.Input[str]] = None,
389
+ defined_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
390
+ description: Optional[pulumi.Input[str]] = None,
391
+ display_name: Optional[pulumi.Input[str]] = None,
392
+ freeform_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
393
+ model_id: Optional[pulumi.Input[str]] = None,
394
+ __props__=None):
395
+ """
396
+ This resource provides the Endpoint resource in Oracle Cloud Infrastructure Generative Ai service.
397
+
398
+ Creates an endpoint.
399
+
400
+ The header contains an opc-work-request-id, which is the id for the WorkRequest that tracks the endpoint creation progress.
401
+
402
+ ## Example Usage
403
+
404
+ ```python
405
+ import pulumi
406
+ import pulumi_oci as oci
407
+
408
+ test_endpoint = oci.generative_ai.Endpoint("testEndpoint",
409
+ compartment_id=var["compartment_id"],
410
+ dedicated_ai_cluster_id=oci_generative_ai_dedicated_ai_cluster["test_dedicated_ai_cluster"]["id"],
411
+ model_id=oci_generative_ai_model["test_model"]["id"],
412
+ content_moderation_config=oci.generative_ai.EndpointContentModerationConfigArgs(
413
+ is_enabled=var["endpoint_content_moderation_config_is_enabled"],
414
+ ),
415
+ defined_tags={
416
+ "Operations.CostCenter": "42",
417
+ },
418
+ description=var["endpoint_description"],
419
+ display_name=var["endpoint_display_name"],
420
+ freeform_tags={
421
+ "Department": "Finance",
422
+ })
423
+ ```
424
+
425
+ ## Import
426
+
427
+ Endpoints can be imported using the `id`, e.g.
428
+
429
+ ```sh
430
+ $ pulumi import oci:GenerativeAi/endpoint:Endpoint test_endpoint "id"
431
+ ```
432
+
433
+ :param str resource_name: The name of the resource.
434
+ :param pulumi.ResourceOptions opts: Options for the resource.
435
+ :param pulumi.Input[str] compartment_id: (Updatable) The compartment OCID to create the endpoint in.
436
+ :param pulumi.Input[pulumi.InputType['EndpointContentModerationConfigArgs']] content_moderation_config: (Updatable) The configuration details, whether to add the content moderation feature to the model. Content moderation removes toxic and biased content from responses. It's recommended to use content moderation.
437
+ :param pulumi.Input[str] dedicated_ai_cluster_id: The OCID of the dedicated AI cluster on which a model will be deployed to.
438
+ :param pulumi.Input[Mapping[str, Any]] defined_tags: (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
439
+ :param pulumi.Input[str] description: (Updatable) An optional description of the endpoint.
440
+ :param pulumi.Input[str] display_name: (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.
441
+ :param pulumi.Input[Mapping[str, Any]] freeform_tags: (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
442
+ :param pulumi.Input[str] model_id: The ID of the model that's used to create this endpoint.
443
+
444
+
445
+ ** IMPORTANT **
446
+ Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
447
+ """
448
+ ...
449
+ @overload
450
+ def __init__(__self__,
451
+ resource_name: str,
452
+ args: EndpointArgs,
453
+ opts: Optional[pulumi.ResourceOptions] = None):
454
+ """
455
+ This resource provides the Endpoint resource in Oracle Cloud Infrastructure Generative Ai service.
456
+
457
+ Creates an endpoint.
458
+
459
+ The header contains an opc-work-request-id, which is the id for the WorkRequest that tracks the endpoint creation progress.
460
+
461
+ ## Example Usage
462
+
463
+ ```python
464
+ import pulumi
465
+ import pulumi_oci as oci
466
+
467
+ test_endpoint = oci.generative_ai.Endpoint("testEndpoint",
468
+ compartment_id=var["compartment_id"],
469
+ dedicated_ai_cluster_id=oci_generative_ai_dedicated_ai_cluster["test_dedicated_ai_cluster"]["id"],
470
+ model_id=oci_generative_ai_model["test_model"]["id"],
471
+ content_moderation_config=oci.generative_ai.EndpointContentModerationConfigArgs(
472
+ is_enabled=var["endpoint_content_moderation_config_is_enabled"],
473
+ ),
474
+ defined_tags={
475
+ "Operations.CostCenter": "42",
476
+ },
477
+ description=var["endpoint_description"],
478
+ display_name=var["endpoint_display_name"],
479
+ freeform_tags={
480
+ "Department": "Finance",
481
+ })
482
+ ```
483
+
484
+ ## Import
485
+
486
+ Endpoints can be imported using the `id`, e.g.
487
+
488
+ ```sh
489
+ $ pulumi import oci:GenerativeAi/endpoint:Endpoint test_endpoint "id"
490
+ ```
491
+
492
+ :param str resource_name: The name of the resource.
493
+ :param EndpointArgs args: The arguments to use to populate this resource's properties.
494
+ :param pulumi.ResourceOptions opts: Options for the resource.
495
+ """
496
+ ...
497
+ def __init__(__self__, resource_name: str, *args, **kwargs):
498
+ resource_args, opts = _utilities.get_resource_args_opts(EndpointArgs, pulumi.ResourceOptions, *args, **kwargs)
499
+ if resource_args is not None:
500
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
501
+ else:
502
+ __self__._internal_init(resource_name, *args, **kwargs)
503
+
504
+ def _internal_init(__self__,
505
+ resource_name: str,
506
+ opts: Optional[pulumi.ResourceOptions] = None,
507
+ compartment_id: Optional[pulumi.Input[str]] = None,
508
+ content_moderation_config: Optional[pulumi.Input[pulumi.InputType['EndpointContentModerationConfigArgs']]] = None,
509
+ dedicated_ai_cluster_id: Optional[pulumi.Input[str]] = None,
510
+ defined_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
511
+ description: Optional[pulumi.Input[str]] = None,
512
+ display_name: Optional[pulumi.Input[str]] = None,
513
+ freeform_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
514
+ model_id: Optional[pulumi.Input[str]] = None,
515
+ __props__=None):
516
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
517
+ if not isinstance(opts, pulumi.ResourceOptions):
518
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
519
+ if opts.id is None:
520
+ if __props__ is not None:
521
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
522
+ __props__ = EndpointArgs.__new__(EndpointArgs)
523
+
524
+ if compartment_id is None and not opts.urn:
525
+ raise TypeError("Missing required property 'compartment_id'")
526
+ __props__.__dict__["compartment_id"] = compartment_id
527
+ __props__.__dict__["content_moderation_config"] = content_moderation_config
528
+ if dedicated_ai_cluster_id is None and not opts.urn:
529
+ raise TypeError("Missing required property 'dedicated_ai_cluster_id'")
530
+ __props__.__dict__["dedicated_ai_cluster_id"] = dedicated_ai_cluster_id
531
+ __props__.__dict__["defined_tags"] = defined_tags
532
+ __props__.__dict__["description"] = description
533
+ __props__.__dict__["display_name"] = display_name
534
+ __props__.__dict__["freeform_tags"] = freeform_tags
535
+ if model_id is None and not opts.urn:
536
+ raise TypeError("Missing required property 'model_id'")
537
+ __props__.__dict__["model_id"] = model_id
538
+ __props__.__dict__["lifecycle_details"] = None
539
+ __props__.__dict__["state"] = None
540
+ __props__.__dict__["system_tags"] = None
541
+ __props__.__dict__["time_created"] = None
542
+ __props__.__dict__["time_updated"] = None
543
+ super(Endpoint, __self__).__init__(
544
+ 'oci:GenerativeAi/endpoint:Endpoint',
545
+ resource_name,
546
+ __props__,
547
+ opts)
548
+
549
+ @staticmethod
550
+ def get(resource_name: str,
551
+ id: pulumi.Input[str],
552
+ opts: Optional[pulumi.ResourceOptions] = None,
553
+ compartment_id: Optional[pulumi.Input[str]] = None,
554
+ content_moderation_config: Optional[pulumi.Input[pulumi.InputType['EndpointContentModerationConfigArgs']]] = None,
555
+ dedicated_ai_cluster_id: Optional[pulumi.Input[str]] = None,
556
+ defined_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
557
+ description: Optional[pulumi.Input[str]] = None,
558
+ display_name: Optional[pulumi.Input[str]] = None,
559
+ freeform_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
560
+ lifecycle_details: Optional[pulumi.Input[str]] = None,
561
+ model_id: Optional[pulumi.Input[str]] = None,
562
+ state: Optional[pulumi.Input[str]] = None,
563
+ system_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
564
+ time_created: Optional[pulumi.Input[str]] = None,
565
+ time_updated: Optional[pulumi.Input[str]] = None) -> 'Endpoint':
566
+ """
567
+ Get an existing Endpoint resource's state with the given name, id, and optional extra
568
+ properties used to qualify the lookup.
569
+
570
+ :param str resource_name: The unique name of the resulting resource.
571
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
572
+ :param pulumi.ResourceOptions opts: Options for the resource.
573
+ :param pulumi.Input[str] compartment_id: (Updatable) The compartment OCID to create the endpoint in.
574
+ :param pulumi.Input[pulumi.InputType['EndpointContentModerationConfigArgs']] content_moderation_config: (Updatable) The configuration details, whether to add the content moderation feature to the model. Content moderation removes toxic and biased content from responses. It's recommended to use content moderation.
575
+ :param pulumi.Input[str] dedicated_ai_cluster_id: The OCID of the dedicated AI cluster on which a model will be deployed to.
576
+ :param pulumi.Input[Mapping[str, Any]] defined_tags: (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
577
+ :param pulumi.Input[str] description: (Updatable) An optional description of the endpoint.
578
+ :param pulumi.Input[str] display_name: (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.
579
+ :param pulumi.Input[Mapping[str, Any]] freeform_tags: (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
580
+ :param pulumi.Input[str] lifecycle_details: A message describing the current state of the endpoint in more detail that can provide actionable information.
581
+ :param pulumi.Input[str] model_id: The ID of the model that's used to create this endpoint.
582
+
583
+
584
+ ** IMPORTANT **
585
+ Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
586
+ :param pulumi.Input[str] state: The current state of the endpoint.
587
+ :param pulumi.Input[Mapping[str, Any]] system_tags: System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
588
+ :param pulumi.Input[str] time_created: The date and time that the endpoint was created in the format of an RFC3339 datetime string.
589
+ :param pulumi.Input[str] time_updated: The date and time that the endpoint was updated in the format of an RFC3339 datetime string.
590
+ """
591
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
592
+
593
+ __props__ = _EndpointState.__new__(_EndpointState)
594
+
595
+ __props__.__dict__["compartment_id"] = compartment_id
596
+ __props__.__dict__["content_moderation_config"] = content_moderation_config
597
+ __props__.__dict__["dedicated_ai_cluster_id"] = dedicated_ai_cluster_id
598
+ __props__.__dict__["defined_tags"] = defined_tags
599
+ __props__.__dict__["description"] = description
600
+ __props__.__dict__["display_name"] = display_name
601
+ __props__.__dict__["freeform_tags"] = freeform_tags
602
+ __props__.__dict__["lifecycle_details"] = lifecycle_details
603
+ __props__.__dict__["model_id"] = model_id
604
+ __props__.__dict__["state"] = state
605
+ __props__.__dict__["system_tags"] = system_tags
606
+ __props__.__dict__["time_created"] = time_created
607
+ __props__.__dict__["time_updated"] = time_updated
608
+ return Endpoint(resource_name, opts=opts, __props__=__props__)
609
+
610
+ @property
611
+ @pulumi.getter(name="compartmentId")
612
+ def compartment_id(self) -> pulumi.Output[str]:
613
+ """
614
+ (Updatable) The compartment OCID to create the endpoint in.
615
+ """
616
+ return pulumi.get(self, "compartment_id")
617
+
618
+ @property
619
+ @pulumi.getter(name="contentModerationConfig")
620
+ def content_moderation_config(self) -> pulumi.Output['outputs.EndpointContentModerationConfig']:
621
+ """
622
+ (Updatable) The configuration details, whether to add the content moderation feature to the model. Content moderation removes toxic and biased content from responses. It's recommended to use content moderation.
623
+ """
624
+ return pulumi.get(self, "content_moderation_config")
625
+
626
+ @property
627
+ @pulumi.getter(name="dedicatedAiClusterId")
628
+ def dedicated_ai_cluster_id(self) -> pulumi.Output[str]:
629
+ """
630
+ The OCID of the dedicated AI cluster on which a model will be deployed to.
631
+ """
632
+ return pulumi.get(self, "dedicated_ai_cluster_id")
633
+
634
+ @property
635
+ @pulumi.getter(name="definedTags")
636
+ def defined_tags(self) -> pulumi.Output[Mapping[str, Any]]:
637
+ """
638
+ (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}`
639
+ """
640
+ return pulumi.get(self, "defined_tags")
641
+
642
+ @property
643
+ @pulumi.getter
644
+ def description(self) -> pulumi.Output[str]:
645
+ """
646
+ (Updatable) An optional description of the endpoint.
647
+ """
648
+ return pulumi.get(self, "description")
649
+
650
+ @property
651
+ @pulumi.getter(name="displayName")
652
+ def display_name(self) -> pulumi.Output[str]:
653
+ """
654
+ (Updatable) A user-friendly name. Does not have to be unique, and it's changeable.
655
+ """
656
+ return pulumi.get(self, "display_name")
657
+
658
+ @property
659
+ @pulumi.getter(name="freeformTags")
660
+ def freeform_tags(self) -> pulumi.Output[Mapping[str, Any]]:
661
+ """
662
+ (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}`
663
+ """
664
+ return pulumi.get(self, "freeform_tags")
665
+
666
+ @property
667
+ @pulumi.getter(name="lifecycleDetails")
668
+ def lifecycle_details(self) -> pulumi.Output[str]:
669
+ """
670
+ A message describing the current state of the endpoint in more detail that can provide actionable information.
671
+ """
672
+ return pulumi.get(self, "lifecycle_details")
673
+
674
+ @property
675
+ @pulumi.getter(name="modelId")
676
+ def model_id(self) -> pulumi.Output[str]:
677
+ """
678
+ The ID of the model that's used to create this endpoint.
679
+
680
+
681
+ ** IMPORTANT **
682
+ Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
683
+ """
684
+ return pulumi.get(self, "model_id")
685
+
686
+ @property
687
+ @pulumi.getter
688
+ def state(self) -> pulumi.Output[str]:
689
+ """
690
+ The current state of the endpoint.
691
+ """
692
+ return pulumi.get(self, "state")
693
+
694
+ @property
695
+ @pulumi.getter(name="systemTags")
696
+ def system_tags(self) -> pulumi.Output[Mapping[str, Any]]:
697
+ """
698
+ System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
699
+ """
700
+ return pulumi.get(self, "system_tags")
701
+
702
+ @property
703
+ @pulumi.getter(name="timeCreated")
704
+ def time_created(self) -> pulumi.Output[str]:
705
+ """
706
+ The date and time that the endpoint was created in the format of an RFC3339 datetime string.
707
+ """
708
+ return pulumi.get(self, "time_created")
709
+
710
+ @property
711
+ @pulumi.getter(name="timeUpdated")
712
+ def time_updated(self) -> pulumi.Output[str]:
713
+ """
714
+ The date and time that the endpoint was updated in the format of an RFC3339 datetime string.
715
+ """
716
+ return pulumi.get(self, "time_updated")
717
+