Add ORAN Python SDK first draft
[it/dep.git] / smo-install / test / pythonsdk / src / oransdk / a1policymanagement / a1policymanagement.py
diff --git a/smo-install/test/pythonsdk/src/oransdk/a1policymanagement/a1policymanagement.py b/smo-install/test/pythonsdk/src/oransdk/a1policymanagement/a1policymanagement.py
new file mode 100644 (file)
index 0000000..25458c6
--- /dev/null
@@ -0,0 +1,112 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+# SPDX-License-Identifier: Apache-2.0
+"""ONAP A1 Policy Management."""
+
+from typing import Dict
+from oransdk.configuration import settings
+from onapsdk.onap_service import OnapService
+
+class A1policymanagement(OnapService):
+    """A1 Policy Management library."""
+
+    base_url = settings.A1_POLICY_MANAGEMENT_URL
+    header = {"Accept":"application/json", "Content-Type":"application/json"}
+
+    @classmethod
+    def check_status(cls) -> str:
+        """
+        Get the status of the A1 policy management component.
+
+        Returns:
+            the status of the A1 policy management component
+
+        """
+        url = f"{cls.base_url}/status"
+        status = cls.send_message('GET',
+                                  'Get A1 policy management status',
+                                  url)
+        return status
+
+    @classmethod
+    def get_policy_types(cls) -> Dict:
+        """
+        Get all the policy types.
+
+        Returns:
+            the list of policy types
+
+        """
+        url = f"{cls.base_url}/policy_types"
+        policy_types = cls.send_message_json('GET',
+                                             'Get all the policy types',
+                                             url)
+        return policy_types
+
+    @classmethod
+    def get_policy_type_agent(cls) -> Dict:
+        """
+        Get all the policy types from policy agent.
+
+        Returns:
+            the list of policy types
+
+        """
+        url = f"{cls.base_url}/a1-policy/v2/policy-types"
+        policy_types = cls.send_message_json('GET',
+                                             'Get all the policy types from policy agent',
+                                             url)
+        return policy_types
+
+    @classmethod
+    def get_policy(cls, policy_id) -> Dict:
+        """
+        Get policy.
+
+        Args:
+           type: the policy id
+
+        Returns:
+            the details of the policy
+
+        """
+        url = f"{cls.base_url}/a1-policy/v2/policies/{policy_id}"
+        policy = cls.send_message_json('GET',
+                                       'Get the policy with policy id',
+                                       url)
+        return policy
+
+
+    @classmethod
+    def create_service(cls,
+                       service_data) -> None:
+        """
+        Create service.
+
+        Args:
+           service_data: the service data in binary format
+
+        """
+        url = f"{cls.base_url}/a1-policy/v2/services"
+        cls.send_message('PUT',
+                         'Create Service',
+                         url,
+                         data=service_data,
+                         headers=cls.header)
+
+    @classmethod
+    def create_policy(cls,
+                      policy_data) -> None:
+        """
+        Create policy.
+
+        Args:
+           policy_data: the policy data in binary format
+
+        """
+        url = f"{cls.base_url}/a1-policy/v2/policies"
+        cls.send_message('PUT',
+                         'Create Policy',
+                         url,
+                         data=policy_data,
+                         headers=cls.header)