Create a new organization’s IAM integration
from labelbox.schema.iam_integration import (
AwsIamIntegrationSettings,
GcpIamIntegrationSettings,
AzureIamIntegrationSettings,
)
organization = client.get_organization()
# AWS
aws_settings = AwsIamIntegrationSettings(
role_arn="arn:aws:iam::123456789012:role/LabelboxDelegatedAccess",
read_bucket="my-s3-bucket"
)
aws_integration = organization.create_iam_integration(
name="My AWS Integration",
settings=aws_settings
)
# GCP
gcp_settings = GcpIamIntegrationSettings(
read_bucket="gs://my-gcp-bucket"
)
gcp_integration = organization.create_iam_integration(
name="My GCP Integration",
settings=gcp_settings
)
# Azure
azure_settings = AzureIamIntegrationSettings(
read_container_url="https://mystorageaccount.blob.core.windows.net/mycontainer",
tenant_id="your-tenant-id",
client_id="your-client-id", # Optional for creation
client_secret="your-client-secret" # Optional for creation
)
azure_integration = organization.create_iam_integration(
name="My Azure Integration",
settings=azure_settings
)
Update an IAM integration
# AWS
updated_aws_settings = AwsIamIntegrationSettings(
role_arn="arn:aws:iam::123456789012:role/UpdatedLabelboxRole",
read_bucket="my-updated-s3-bucket"
)
aws_integration.update(
name="Updated AWS Integration",
settings=updated_aws_settings
)
# GCP
updated_gcp_settings = GcpIamIntegrationSettings(
read_bucket="gs://my-updated-gcp-bucket"
)
gcp_integration.update(
name="Updated GCP Integration",
settings=updated_gcp_settings
)
# Azure
updated_azure_settings = AzureIamIntegrationSettings(
read_container_url="https://updatedstorageaccount.blob.core.windows.net/mycontainer",
tenant_id="updated-tenant-id"
)
azure_integration.update(
name="Updated Azure Integration",
settings=updated_azure_settings
)
Set an IAM integration as default
iam_integration.set_as_default()
Validate an IAM integration
iam_integration.validate()
List your organization’s IAM integrations
import labelbox as lb
client = lb.Client("<YOUR_API_KEY>")
organization = client.get_organization()
iam_integrations = organization.get_iam_integrations()
for integration in iam_integrations:
print(integration)
Get the default IAM integration
default_integration = organization.get_default_iam_integration()
Set IAM integration during dataset creation
Each dataset can have only one IAM integration. Use the iam_integration
optional field for client.create_dataset
.
If not set, it will use the default integration of your organization.
You can then upload data rows using the cloud storage URLs.
iam_integration = organization.get_iam_integrations()[1]
dataset = client.create_dataset(name="IAM manual demo", iam_integration=iam_integration)
Override default integration during dataset creation
You can override the default integration when creating a dataset.
dataset = client.create_dataset(name="IAM manual demo", iam_integration=None)
Update dataset integration
You can change the current integration of a dataset with add_iam_integration
.
# Get all IAM integrations
iam_integrations = client.get_organization().get_iam_integrations()
# Get IAM integration id
iam_integration_id = [integration.uid for integration
in iam_integrations
if integration.name == "My S3 integration"][0]
# Set IAM integration for integration id
dataset.add_iam_integration(iam_integration_id)
# Get IAM integration object
iam_integration = [integration.uid for integration
in iam_integrations
if integration.name == "My S3 integration"][0]
# Set IAM integration for IAMIntegrtion object
dataset.add_iam_integration(iam_integration)
Remove/Unselect dataset integration
dataset.remove_iam_integration()
Upload data rows with delegated access
Make sure the type of IAM integration matches your data rows’ cloud storage, then use the URL for the row_data
field to upload data rows.
# Some examples:
datarows = [{"row_data": "https://<bucket-name>.s3.<region>.amazonaws.com/<key>"}] # Amazon S3
datarows = [{"row_data": "gs://gcs-lb-demo-bucket/test.png"}] # Google Cloud Storage
datarows = [{"row_data": "https://labelboxdatasets.blob.core.windows.net/datasets/geospatial/001.jpg"}] # Microsoft Azure Blob Storage
task1 = dataset.create_data_rows(datarows)
task1.wait_till_done()
Responses are generated using AI and may contain mistakes.