@@ -915,43 +915,43 @@ def _convert_items_to_upsert_format(self, _items):
915
915
return _upsert_items
916
916
917
917
def add_iam_integration (self , iam_integration : Union [str , IAMIntegration ]) -> IAMIntegration :
918
- """
919
- Sets the IAM integration for the dataset. IAM integration is used to sign URLs for data row assets.
918
+ """
919
+ Sets the IAM integration for the dataset. IAM integration is used to sign URLs for data row assets.
920
920
921
- Args:
922
- iam_integration (Union[str, IAMIntegration]): IAM integration object or IAM integration id.
923
-
924
- Returns:
925
- IAMIntegration: IAM integration object.
926
-
927
- Raises:
928
- LabelboxError: If the IAM integration can't be set.
929
-
930
- Examples:
931
-
932
- >>> # Get all IAM integrations
933
- >>> iam_integrations = client.get_organization().get_iam_integrations()
934
- >>>
935
- >>> # Get IAM integration id
936
- >>> iam_integration_id = [integration.uid for integration
937
- >>> in iam_integrations
938
- >>> if integration.name == "My S3 integration"][0]
939
- >>>
940
- >>> # Set IAM integration for integration id
941
- >>> dataset.set_iam_integration(iam_integration_id)
942
- >>>
943
- >>> # Get IAM integration object
944
- >>> iam_integration = [integration.uid for integration
945
- >>> in iam_integrations
946
- >>> if integration.name == "My S3 integration"][0]
947
- >>>
948
- >>> # Set IAM integration for IAMIntegrtion object
949
- >>> dataset.set_iam_integration(iam_integration)
950
- """
951
-
952
- iam_integration_id = iam_integration .uid if isinstance (iam_integration , IAMIntegration ) else iam_integration
953
-
954
- query = """
921
+ Args:
922
+ iam_integration (Union[str, IAMIntegration]): IAM integration object or IAM integration id.
923
+
924
+ Returns:
925
+ IAMIntegration: IAM integration object.
926
+
927
+ Raises:
928
+ LabelboxError: If the IAM integration can't be set.
929
+
930
+ Examples:
931
+
932
+ >>> # Get all IAM integrations
933
+ >>> iam_integrations = client.get_organization().get_iam_integrations()
934
+ >>>
935
+ >>> # Get IAM integration id
936
+ >>> iam_integration_id = [integration.uid for integration
937
+ >>> in iam_integrations
938
+ >>> if integration.name == "My S3 integration"][0]
939
+ >>>
940
+ >>> # Set IAM integration for integration id
941
+ >>> dataset.set_iam_integration(iam_integration_id)
942
+ >>>
943
+ >>> # Get IAM integration object
944
+ >>> iam_integration = [integration.uid for integration
945
+ >>> in iam_integrations
946
+ >>> if integration.name == "My S3 integration"][0]
947
+ >>>
948
+ >>> # Set IAM integration for IAMIntegrtion object
949
+ >>> dataset.set_iam_integration(iam_integration)
950
+ """
951
+
952
+ iam_integration_id = iam_integration .uid if isinstance (iam_integration , IAMIntegration ) else iam_integration
953
+
954
+ query = """
955
955
mutation SetSignerForDatasetPyApi($signerId: ID!, $datasetId: ID!) {
956
956
setSignerForDataset(
957
957
data: { signerId: $signerId }
@@ -963,19 +963,20 @@ def add_iam_integration(self, iam_integration: Union[str, IAMIntegration]) -> IA
963
963
}
964
964
}
965
965
}
966
- """
966
+ """
967
967
968
- response = self .client .execute (query , {"signerId" : iam_integration_id , "datasetId" : self .uid })
968
+ response = self .client .execute (query , {"signerId" : iam_integration_id , "datasetId" : self .uid })
969
969
970
- if not response :
970
+ if not response :
971
971
raise ResourceNotFoundError (IAMIntegration , {"signerId" : iam_integration_id , "datasetId" : self .uid })
972
-
973
- try :
972
+
973
+ try :
974
974
iam_integration_id = response .get ("setSignerForDataset" , {}).get ("signer" , {})["id" ]
975
+
975
976
return [integration for integration
976
977
in self .client .get_organization ().get_iam_integrations ()
977
978
if integration .uid == iam_integration_id ][0 ]
978
- except :
979
+ except :
979
980
raise LabelboxError (f"Can't retrieve IAM integration { iam_integration_id } " )
980
981
981
982
def remove_iam_integration (self ) -> None :
0 commit comments