aboutsummaryrefslogtreecommitdiffstats
path: root/src/onapsdk/aai/business/customer.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/onapsdk/aai/business/customer.py')
-rw-r--r--src/onapsdk/aai/business/customer.py52
1 files changed, 51 insertions, 1 deletions
diff --git a/src/onapsdk/aai/business/customer.py b/src/onapsdk/aai/business/customer.py
index 1df1bc2..6799fac 100644
--- a/src/onapsdk/aai/business/customer.py
+++ b/src/onapsdk/aai/business/customer.py
@@ -505,7 +505,7 @@ class Customer(AaiResource):
"declare customer",
url,
data=jinja_env()
- .get_template("customer_create.json.j2")
+ .get_template("customer_create_update.json.j2")
.render(
global_customer_id=global_customer_id,
subscriber_name=subscriber_name,
@@ -523,6 +523,56 @@ class Customer(AaiResource):
resource_version=response["resource-version"],
)
+ @classmethod
+ def update(cls,
+ global_customer_id: str,
+ subscriber_name: str,
+ subscriber_type: str,
+ service_subscriptions: Optional[Iterable[str]] = None) -> "Customer":
+ """Update customer.
+
+ Args:
+ global_customer_id (str): Global customer id used across ONAP
+ to uniquely identify customer.
+ subscriber_name (str): Subscriber name, an alternate way
+ to retrieve a customer.
+ subscriber_type (str): Subscriber type, a way to provide
+ VID with only the INFRA customers.
+ service_subscriptions (Optional[Iterable[str]], optional): Iterable
+ of service subscription names should be created for newly
+ created customer. Defaults to None.
+
+ Returns:
+ Customer: Customer object.
+
+ """
+ url: str = (
+ f"{cls.base_url}{cls.api_version}/business/customers/"
+ f"customer/{global_customer_id}"
+ )
+ cls.send_message(
+ "PATCH",
+ "update customer",
+ url,
+ data=jinja_env()
+ .get_template("customer_create_update.json.j2")
+ .render(
+ global_customer_id=global_customer_id,
+ subscriber_name=subscriber_name,
+ subscriber_type=subscriber_type,
+ service_subscriptions=service_subscriptions
+ ),
+ )
+ response: dict = cls.send_message_json(
+ "GET", "get updated customer", url
+ ) # Call API one more time to get Customer's resource version
+ return Customer(
+ global_customer_id=response["global-customer-id"],
+ subscriber_name=response["subscriber-name"],
+ subscriber_type=response["subscriber-type"],
+ resource_version=response["resource-version"],
+ )
+
@property
def url(self) -> str:
"""Return customer object url.