---
title: "Create datalake"
method: POST
path: "/import/datalakes"
tags: ["Datalakes"]
---

# Create datalake

`POST /import/datalakes`

Add a new datalake.

## Request body

- CreateDatalakeRequest
  - `datalake` union, required
    - object
      - `storage` 's3', required
      - `s3` union, required
        - S3DatalakeOptionsAWSIAMRole
          - `bucket_name` string, required — Name of the S3 bucket.
          - `prefix` string, required — Prefix to use for the S3 bucket.
          - `bucket_region` string, required — AWS region where the bucket is located.
          - `auth_method` 'aws_iam_role', required
          - `aws_iam_role` AWSIAMRole, required
            - `aws_iam_role_arn` string, required
        - S3DatalakeOptionsAWSAccessKeys
          - `bucket_name` string, required — Name of the S3 bucket.
          - `prefix` string, required — Prefix to use for the S3 bucket.
          - `bucket_region` string, required — AWS region where the bucket is located.
          - `auth_method` 'aws_access_keys', required
          - `aws_access_keys` AWSAccessKeys, required
            - `access_id` string, required
            - `secret_key` string, required
      - `name` string, required — Unique name for this import datalake.
      - `retention_window_days` integer — Number of days to retain data. Null means infinite retention.
    - object
      - `storage` 's3_compatible', required
      - `s3_compatible` S3CompatibleDatalakeOptions, required
        - `prefix` string, required — Prefix to use for the S3 bucket.
        - `bucket_name` string, required
        - `bucket_region` string, required
        - `bucket_host` string, required
        - `bucket_port` integer, required
        - `aws_access_keys` AWSAccessKeys, required
          - `access_id` string, required
          - `secret_key` string, required
      - `name` string, required — Unique name for this import datalake.
      - `retention_window_days` integer — Number of days to retain data. Null means infinite retention.
    - object
      - `storage` 'gcs', required
      - `gcs` union, required
        - GCSDatalakeOptionsGCPServiceAccountRole
          - `prefix` string, required — Prefix to use for the GCS bucket.
          - `bucket_name` string, required
          - `bucket_region` string, required — GCS region (e.g. us-central1).
          - `auth_method` 'gcp_service_account_role', required
          - `gcp_service_account_role` GCPDatalakeServiceAccountRole, required
            - `gcp_service_account_email` string, required — Email of the GCP service account.
        - GCSDatalakeOptionsGCPServiceAccountKey
          - `prefix` string, required — Prefix to use for the GCS bucket.
          - `bucket_name` string, required
          - `bucket_region` string, required — GCS region (e.g. us-central1).
          - `auth_method` 'gcp_service_account_key', required
          - `gcp_service_account_key` GCPDatalakeServiceAccountKey, required
            - `service_account_email` string, email, required
            - `service_account_key` unknown, required
        - GCSDatalakeOptionsFederatedGCPServiceAccountRole
          - `prefix` string, required — Prefix to use for the GCS bucket.
          - `bucket_name` string, required
          - `bucket_region` string, required — GCS region (e.g. us-central1).
          - `auth_method` 'federated_gcp_service_account_role', required
          - `federated_gcp_service_account_role` FederatedGCPDatalakeServiceAccountRole, required
            - `service_account_email` string, email, required
            - `workload_identity_federation_metadata` GcpExternalAccountMetadata
              - …
      - `name` string, required — Unique name for this import datalake.
      - `retention_window_days` integer — Number of days to retain data. Null means infinite retention.
    - object
      - `storage` 'abs', required
      - `abs` ABSDatalakeOptions, required
        - `prefix` string, required — Prefix to use for the ABS bucket.
        - `container_name` string, required
        - `storage_account_name` string, required
        - `auth_method` 'azure_storage_account_access_key', required
        - `azure_storage_account_access_key` AzureStorageAccountAccessKey
          - `storage_account_access_key` string, required
      - `name` string, required — Unique name for this import datalake.
      - `retention_window_days` integer — Number of days to retain data. Null means infinite retention.

## Response `200`

OK

- object
  - `status` 'success', required
  - `data` GetDatalakeResponse, required
    - `datalake` union, required
      - object
        - `storage` 's3', required
        - `s3` union, required
          - S3DatalakeResourceAWSIAMRole
            - `prefix` string, required
            - `bucket_name` string, required
            - `bucket_region` string, required
            - `auth_method` 'aws_iam_role', required
            - `aws_iam_role` AWSIAMRoleResource, required
              - …
          - S3DatalakeResourceAWSAccessKeys
            - `prefix` string, required
            - `bucket_name` string, required
            - `bucket_region` string, required
            - `auth_method` 'aws_access_keys', required
            - `aws_access_keys` AWSAccessKeysResource, required
              - …
        - `id` string, required
        - `name` string, required
        - `retention_window_days` integer
        - `created_at` string, required
        - `updated_at` string, required
      - object
        - `storage` 's3_compatible', required
        - `s3_compatible` S3CompatibleDatalakeResource, required
          - `prefix` string, required
          - `bucket_name` string, required
          - `bucket_region` string, required
          - `bucket_host` string, required
          - `bucket_port` integer, required
          - `aws_access_keys` AWSAccessKeysResource, required
            - `access_key_id` string, required
        - `id` string, required
        - `name` string, required
        - `retention_window_days` integer
        - `created_at` string, required
        - `updated_at` string, required
      - object
        - `storage` 'gcs', required
        - `gcs` union, required
          - GCSDatalakeResourceGCPServiceAccountRole
            - `prefix` string, required
            - `bucket_name` string, required
            - `bucket_region` string, required
            - `auth_method` 'gcp_service_account_role', required
            - `gcp_service_account_role` GCPDatalakeServiceAccountRoleResource, required
              - …
          - GCSDatalakeResourceGCPServiceAccountKey
            - `prefix` string, required
            - `bucket_name` string, required
            - `bucket_region` string, required
            - `auth_method` 'gcp_service_account_key', required
            - `gcp_service_account_key` GCPDatalakeServiceAccountKeyResource, required
              - …
          - GCSDatalakeResourceFederatedGCPServiceAccountRole
            - `prefix` string, required
            - `bucket_name` string, required
            - `bucket_region` string, required
            - `auth_method` 'federated_gcp_service_account_role', required
            - `federated_gcp_service_account_role` FederatedGCPDatalakeServiceAccountRoleResource, required
              - …
        - `id` string, required
        - `name` string, required
        - `retention_window_days` integer
        - `created_at` string, required
        - `updated_at` string, required
      - object
        - `storage` 'abs', required
        - `abs` ABSDatalakeResource, required
          - `prefix` string, required
          - `container_name` string, required
          - `storage_account_name` string, required
          - `auth_method` string, required
          - `azure_storage_account_access_key` AzureStorageAccountAccessKeyResource
        - `id` string, required
        - `name` string, required
        - `retention_window_days` integer
        - `created_at` string, required
        - `updated_at` string, required
  - `message` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/prequel/apis/prequel-data-export.md) · [All operations](https://skmtc.net/prequel/apis/prequel-data-export/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/prequel/prequel-data-export/versions/09c662a871f8/schema)
