-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathservice_instances.py
More file actions
56 lines (47 loc) · 2.14 KB
/
service_instances.py
File metadata and controls
56 lines (47 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from typing import TYPE_CHECKING
from cloudfoundry_client.v2.entities import EntityManager, Entity
if TYPE_CHECKING:
from cloudfoundry_client.client import CloudFoundryClient
class ServiceInstanceManager(EntityManager):
list_query_parameters = ["page", "results-per-page", "order-direction", "return_user_provided_service_instances"]
def __init__(self, target_endpoint: str, client: "CloudFoundryClient"):
super().__init__(target_endpoint, client, "/v2/service_instances")
def create(
self,
space_guid: str,
instance_name: str,
plan_guid: str,
parameters: dict | None = None,
tags: list[str] = None,
accepts_incomplete: bool | None = False,
) -> Entity:
request = self._request(name=instance_name, space_guid=space_guid, service_plan_guid=plan_guid)
request["parameters"] = parameters
request["tags"] = tags
params = None if not accepts_incomplete else dict(accepts_incomplete="true")
return super()._create(request, params=params)
def update(
self,
instance_guid: str,
instance_name: str | None = None,
plan_guid: str | None = None,
parameters: dict | None = None,
tags: list[str] = None,
accepts_incomplete: bool | None = False,
) -> Entity:
request = self._request()
request["name"] = instance_name
request["service_plan_guid"] = plan_guid
request["parameters"] = parameters
request["tags"] = tags
params = None if not accepts_incomplete else dict(accepts_incomplete="true")
return super()._update(instance_guid, request, params=params)
def list_permissions(self, instance_guid: str) -> dict[str, bool]:
return super()._get("%s/%s/permissions" % (self.entity_uri, instance_guid), dict)
def remove(self, instance_guid: str, accepts_incomplete: bool | None = False, purge: bool | None = False):
parameters = {}
if accepts_incomplete:
parameters["accepts_incomplete"] = "true"
if purge:
parameters["purge"] = "true"
super()._remove(instance_guid, params=parameters)