aboutsummaryrefslogtreecommitdiffstats
path: root/src/onapsdk/cps/schemaset.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/onapsdk/cps/schemaset.py')
-rw-r--r--src/onapsdk/cps/schemaset.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/onapsdk/cps/schemaset.py b/src/onapsdk/cps/schemaset.py
new file mode 100644
index 0000000..650d12d
--- /dev/null
+++ b/src/onapsdk/cps/schemaset.py
@@ -0,0 +1,73 @@
+"""ONAP SDK CPS schemaset module."""
+# Copyright 2022 Orange, Deutsche Telekom AG
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from dataclasses import dataclass
+from typing import List, Optional, TYPE_CHECKING
+
+from .cps_element import CpsElement
+
+if TYPE_CHECKING:
+ from .dataspace import Dataspace # pylint: disable=cyclic-import
+
+
+@dataclass
+class SchemaSetModuleReference:
+ """Schema set module reference dataclass.
+
+ Stores all information about module reference.
+ """
+
+ name: str
+ namespace: str
+ revision: str
+
+
+class SchemaSet(CpsElement):
+ """Schema set class."""
+
+ def __init__(self,
+ name: str,
+ dataspace: "Dataspace",
+ module_references: Optional[List[SchemaSetModuleReference]] = None) -> None:
+ """Initialize schema set class object.
+
+ Args:
+ name (str): Schema set name
+ dataspace (Dataspace): Dataspace on which schema set was created.
+ module_references (Optional[List[SchemaSetModuleReference]], optional):
+ List of module references. Defaults to None.
+ """
+ super().__init__()
+ self.name: str = name
+ self.dataspace: "Dataspace" = dataspace
+ self.module_refences: List[SchemaSetModuleReference] = module_references \
+ if module_references else []
+
+ def __repr__(self) -> str:
+ """Human readable representation of the object.
+
+ Returns:
+ str: Human readable string
+
+ """
+ return f"SchemaSet(name={self.name}, dataspace={self.dataspace.name})"
+
+ def delete(self) -> None:
+ """Delete schema set."""
+ self.send_message(
+ "DELETE",
+ f"Delete {self.name} schema set",
+ f"{self._url}/cps/api/v1/dataspaces/{self.dataspace.name}/schema-sets/{self.name}"
+ )