Skip to main content

    Grail - Storage Management

    Here you can find the

    • The Dynatrace Bucket Management API for Grail. Get more information about use cases and examples from the Dynatrace Documentation
    npm install @dynatrace-sdk/client-bucket-management

    bucketDefinitionsClient

    import { bucketDefinitionsClient } from '@dynatrace-sdk/client-bucket-management';

    createBucket

    bucketDefinitionsClient.createBucket(config): Promise<Bucket>

    Create a new bucket

    Create a new bucket. Bucket creation can take up to 1 minute.

    Required scope: storage:bucket-definitions:write

    Parameters

    NameType
    config.body*requiredCreateBucket

    Returns

    Return typeStatus codeDescription
    Bucket201Successfully created bucket definition

    Throws

    Error TypeError Message
    ErrorEnvelopeErrorbad request | unauthorized | missing permissions | Bucket already exists

    Code example

    import { bucketDefinitionsClient } from "@dynatrace-sdk/client-bucket-management";

    const data = await bucketDefinitionsClient.createBucket({
    body: {
    bucketName: "custom_logs",
    table: "logs",
    displayName: "Custom logs bucket",
    retentionDays: 35,
    includedQueryLimitDays: 0,
    },
    });

    deleteBucket

    bucketDefinitionsClient.deleteBucket(config): Promise<Bucket>

    Delete a bucket

    Starts deleting a bucket.

    Deletes the bucket and all data stored in the bucket. This operation can not be undone.

    Required scope: storage:bucket-definitions:delete

    Parameters

    NameType
    config.bucketName*requiredstring

    Returns

    Return typeStatus codeDescription
    Bucket202accepted delete bucket

    Throws

    Error TypeError Message
    ErrorEnvelopeErrorbad request | unauthorized | Forbidden | bucket not found | another operation is still in progress that prevents deletion.

    Code example

    import { bucketDefinitionsClient } from "@dynatrace-sdk/client-bucket-management";

    const data = await bucketDefinitionsClient.deleteBucket({
    bucketName: "...",
    });

    getDefinition

    bucketDefinitionsClient.getDefinition(config): Promise<Bucket>

    Get bucket definition by name

    Get bucket definition by name.

    Newly created buckets are not shown immediately, this can take up to a minute.

    Required scope: storage:bucket-definitions:read

    Parameters

    NameTypeDescription
    config.addFieldsArray<string>

    Define additional fields added to the response. Depending on the field this may result in longer response times. records: Request number of records stored in a bucket. estimatedUncompressedBytes: Request estimated uncompressed size of a bucket.

    config.bucketName*requiredstring

    Returns

    Return typeStatus codeDescription
    Bucket200Successfully retrieved bucket definition.

    Throws

    Error TypeError Message
    ErrorEnvelopeErrorbad request | unauthorized | missing permissions | Bucket with provided name was not found.

    Code example

    import { bucketDefinitionsClient } from "@dynatrace-sdk/client-bucket-management";

    const data = await bucketDefinitionsClient.getDefinition({
    bucketName: "...",
    });

    getDefinitions

    bucketDefinitionsClient.getDefinitions(config): Promise<Buckets>

    Get all bucket definitions

    Get all bucket definitions.

    Newly created buckets are not shown immediately, this can take up to a minute.

    Required scope: storage:bucket-definitions:read

    Parameters

    NameTypeDescription
    config.addFieldsArray<string>

    Define additional fields added to the response. Depending on the field this may result in longer response times. records: Request number of records stored in a bucket. estimatedUncompressedBytes: Request estimated uncompressed size of a bucket.

    Returns

    Return typeStatus codeDescription
    Buckets200Successfully retrieved all bucket definitions

    Throws

    Error TypeError Message
    ErrorEnvelopeErrorbad request | unauthorized | missing permissions

    Code example

    import { bucketDefinitionsClient } from "@dynatrace-sdk/client-bucket-management";

    const data = await bucketDefinitionsClient.getDefinitions();

    truncateBucket

    bucketDefinitionsClient.truncateBucket(config): Promise<void>

    Truncate a bucket

    Truncate a specific bucket. Removes the content of the given bucket. Operation can be executed with all types of buckets.

    Required scope: storage:bucket-definitions:truncate

    Parameters

    NameType
    config.bucketName*requiredstring

    Returns

    Return typeStatus codeDescription
    void202Accepted truncate bucket

    Throws

    Error TypeError Message
    ErrorEnvelopeErrorbad request | unauthorized | Forbidden | Bucket not found | Server not ready

    Code example

    import { bucketDefinitionsClient } from "@dynatrace-sdk/client-bucket-management";

    const data = await bucketDefinitionsClient.truncateBucket({
    bucketName: "...",
    });

    updateBucket

    bucketDefinitionsClient.updateBucket(config): Promise<void>

    Update a bucket

    Update a bucket. Update one of the following fields or both:

    • displayName: descriptive name of the bucket
    • retentionDays: retention period in days (important note: the new retention days will also apply to existing records. Shortening the retention period could result in data deletion!)

    Define the full bucket definition with updated field(s) in the request body.

    Required scope: storage:bucket-definitions:write.

    Parameters

    NameTypeDescription
    config.body*requiredUpdateBucket
    config.bucketName*requiredstring
    config.optimisticLockingVersion*requirednumberDefine on which version the updated data is based on.

    Returns

    Return typeStatus codeDescription
    void200Successfully updated bucket definition
    void202Accepted update bucket definition

    Throws

    Error TypeError Message
    ErrorEnvelopeErrorbad request | unauthorized | Forbidden | Bucket with provided name was not found | Attempt to update an old version or an operation is currently in progress that prevents current modifications (creating, deleting, updating)

    Code example

    import { bucketDefinitionsClient } from "@dynatrace-sdk/client-bucket-management";

    const data = await bucketDefinitionsClient.updateBucket({
    bucketName: "...",
    optimisticLockingVersion: 10,
    body: {
    bucketName: "custom_logs",
    table: "logs",
    displayName: "Custom logs bucket (updated)",
    status: "active",
    retentionDays: 10,
    includedQueryLimitDays: 0,
    version: 1,
    },
    });

    updateBucketPartially

    bucketDefinitionsClient.updateBucketPartially(config): Promise<void>

    Update a bucket partially

    Update a bucket. Update one of the following fields or both:

    • displayName: descriptive name of the bucket
    • retentionDays: retention period in days (important note: the new retention days will also apply to existing records. Shortening the retention period could result in data deletion!)

    Add the field(s) to be updated to the request body.

    Required scope: storage:bucket-definitions:write

    Parameters

    NameTypeDescription
    config.body*requiredPartialUpdateBucket
    config.bucketName*requiredstring
    config.optimisticLockingVersion*requirednumberDefine on which version the updated data is based on.

    Returns

    Return typeStatus codeDescription
    void200Successfully updated bucket definition
    void202Accepted update bucket definition

    Throws

    Error TypeError Message
    ErrorEnvelopeErrorbad request | unauthorized | Forbidden | Bucket with provided name was not found | Attempt to update an old version or an operation is currently in progress that prevents current modifications (creating, deleting, updating)

    Code example

    import { bucketDefinitionsClient } from "@dynatrace-sdk/client-bucket-management";

    const data =
    await bucketDefinitionsClient.updateBucketPartially({
    bucketName: "...",
    optimisticLockingVersion: 10,
    body: {
    displayName: "Custom logs bucket (updated)",
    retentionDays: 10,
    includedQueryLimitDays: 0,
    },
    });

    Types

    Bucket

    NameTypeDescription
    bucketName*requiredstringThe unique identifier of the bucket within the tenant.
    displayNamestring

    Descriptive name of the bucket. No restriction regarding unique naming or valid characters.

    estimatedUncompressedBytesnumberEstimated uncompressed size of the bucket in bytes.
    includedQueryLimitDays*requirednumberThe period in days in which queries from the bucket are included in the pricing model.
    metricInterval"PT1S" | "PT5S" | "PT10S" | "PT1M" | "PT5M" | "PT15M" | "PT1H"Interval of aggregated metric data. Only applies to metric buckets.
    recordsnumberAmount of records in the bucket.
    retentionDays*requirednumberThe retention period in days of the data in the bucket.
    status*required"creating" | "active" | "updating" | "deleting"The current status of the bucket, depending on bucket lifecycle.
    table*requiredstringName of the table the bucket is assigned to.
    updatable*requiredbooleanA flag indicating whether a bucket can be updated or not.
    version*requirednumberOptimistic locking version. Update requests define with this on which version the data updated is based on. This must match with the version stored, otherwise the update will fail due to concurrent modification.

    Buckets

    NameType
    buckets*requiredArray<Bucket>

    CreateBucket

    NameTypeDescription
    bucketName*requiredstringThe unique identifier of the bucket within the tenant.
    displayNamestring

    Descriptive name of the bucket. No restriction regarding unique naming or valid characters.

    includedQueryLimitDays*requirednumberThe period in days in which queries from the bucket are included in the pricing model.
    metricInterval"PT1M" | "PT5M" | "PT15M" | "PT1H"Interval of aggregated metric data. Only applies to metric buckets.
    retentionDays*requirednumberThe retention period in days of the data in the bucket.
    table*requiredstringName of the table the bucket is assigned to. One of [logs, events, bizevents, spans]

    ErrorEnvelope

    NameType
    errorExceptionalReturn

    ErrorInfo

    NameType
    messagestring

    ExceptionalReturn

    NameType
    codenumber
    errorDetailsArray<ErrorInfo>
    messagestring

    PartialUpdateBucket

    NameTypeDescription
    displayNamestring

    Descriptive name of the bucket. No restriction regarding unique naming or valid characters.

    includedQueryLimitDaysnumberThe period in days in which queries from the bucket are included in the pricing model.
    retentionDaysnumberThe retention period in days of the data in the bucket. Important note: the new retention days will also apply to existing records. Shortening the retention period could result in data deletion!

    UpdateBucket

    NameTypeDescription
    bucketName*requiredstringThe unique identifier of the bucket within the tenant.
    displayNamestring

    Descriptive name of the bucket. No restriction regarding unique naming or valid characters.

    includedQueryLimitDays*requirednumberThe period in days in which queries from the bucket are included in the pricing model.
    metricInterval"PT1M" | "PT5M" | "PT15M" | "PT1H"Metric interval for metric buckets. Will be ignored for other buckets.
    retentionDays*requirednumberThe retention period in days of the data in the bucket. Important note: the new retention days will also apply to existing records. Shortening the retention period could result in data deletion!
    status*required"creating" | "active" | "updating" | "deleting"The current status of the bucket, depending on bucket lifecycle.
    table*required"logs" | "events" | "bizevents"Name of the table the bucket is assigned to.
    version*requirednumberOptimistic locking version. Update requests define with this on which version the data updated is based on. This must match with the version stored, otherwise the update will fail due to concurrent modification.

    Enums

    BucketMetricInterval

    Interval of aggregated metric data. Only applies to metric buckets.

    Enum keys

    Pt10S | Pt15M | Pt1H | Pt1M | Pt1S | Pt5M | Pt5S

    BucketStatus

    The current status of the bucket, depending on bucket lifecycle.

    Enum keys

    Active | Creating | Deleting | Updating

    CreateBucketMetricInterval

    Interval of aggregated metric data. Only applies to metric buckets.

    Enum keys

    Pt15M | Pt1H | Pt1M | Pt5M

    UpdateBucketMetricInterval

    Metric interval for metric buckets. Will be ignored for other buckets.

    Enum keys

    Pt15M | Pt1H | Pt1M | Pt5M

    UpdateBucketStatus

    The current status of the bucket, depending on bucket lifecycle.

    Enum keys

    Active | Creating | Deleting | Updating

    UpdateBucketTable

    Name of the table the bucket is assigned to.

    Enum keys

    Bizevents | Events | Logs

    Still have questions?
    Find answers in the Dynatrace Community