1616)
1717
1818from gooddata_pipelines .provisioning .entities .user_data_filters .models .udf_models import (
19- UserDataFilter ,
19+ UserDataFilterFullLoad ,
2020 UserDataFilterGroup ,
21+ UserDataFilterIncrementalLoad ,
2122 WorkspaceUserDataFilters ,
2223)
2324from gooddata_pipelines .provisioning .provisioning import Provisioning
2425from gooddata_pipelines .provisioning .utils .exceptions import ContextException
2526
2627
27- class UserDataFilterProvisioner (Provisioning [UserDataFilter ]):
28+ class UserDataFilterProvisioner (
29+ Provisioning [UserDataFilterFullLoad , UserDataFilterIncrementalLoad ]
30+ ):
2831 """Provisioning class for user data filters in GoodData workspaces.
2932
3033 This class handles the creation, update, and deletion of user data filters
@@ -42,7 +45,8 @@ class UserDataFilterProvisioner(Provisioning[UserDataFilter]):
4245 ```
4346 """
4447
45- source_group : list [UserDataFilter ]
48+ source_group_full : list [UserDataFilterFullLoad ]
49+ source_group_incremental : list [UserDataFilterIncrementalLoad ]
4650 ldm_column_name : str = ""
4751 maql_column_name : str = ""
4852
@@ -64,7 +68,7 @@ def set_maql_column_name(self, maql_column_name: str) -> None:
6468
6569 @staticmethod
6670 def _group_db_user_data_filters_by_ws_id (
67- user_data_filters : list [UserDataFilter ],
71+ user_data_filters : list [UserDataFilterFullLoad ],
6872 ) -> list [WorkspaceUserDataFilters ]:
6973 """Group user data filters by workspace ID and user ID."""
7074 ws_map : dict [str , dict [str , set [str ]]] = {}
@@ -193,11 +197,8 @@ def _delete_user_data_filters(
193197 f"Failed to delete user data filters: { e } "
194198 ) from e
195199
196- def _provision (self ) -> None :
200+ def _provision_full_load (self ) -> None :
197201 """Provision user data filters in GoodData workspaces."""
198- grouped_db_user_data_filters = (
199- self ._group_db_user_data_filters_by_ws_id (self .source_group )
200- )
201202
202203 if not self .maql_column_name :
203204 raise ContextException (
@@ -208,6 +209,13 @@ def _provision(self) -> None:
208209 "LDM column name is not set. Please set it before provisioning."
209210 )
210211
212+ grouped_db_user_data_filters = (
213+ self ._group_db_user_data_filters_by_ws_id (self .source_group_full )
214+ )
211215 self ._create_user_data_filters (grouped_db_user_data_filters )
212216
213217 self .logger .info ("User data filters provisioning completed" )
218+
219+ def _provision_incremental_load (self ) -> None :
220+ """Provision user data filters in GoodData workspaces."""
221+ raise NotImplementedError ("Not implemented yet." )
0 commit comments