Method: Appwrite::Databases#create_enum_attribute

Defined in:
lib/appwrite/services/databases.rb

#create_enum_attribute(collection_id:, key:, elements:, required:, default: nil, array: nil) ⇒ AttributeEnum

Parameters:

  • database_id (string)

    Database ID.

  • collection_id (string)

    Collection ID. You can create a new collection using the Database service [server integration](appwrite.io/docs/server/database#createCollection).

  • key (string)

    Attribute Key.

  • elements (array)

    Array of elements in enumerated type. Uses length of longest element to determine size. Maximum of 100 elements are allowed, each 4096 characters long.

  • required (boolean)

    Is attribute required?

  • default (string) (defaults to: nil)

    Default value for attribute when not provided. Cannot be set when attribute is required.

  • array (boolean) (defaults to: nil)

    Is attribute an array?

Returns:

  • (AttributeEnum)


544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
# File 'lib/appwrite/services/databases.rb', line 544

def create_enum_attribute(collection_id:, key:, elements:, required:, default: nil, array: nil)
    if @database_id.nil?
        raise Appwrite::Exception.new('Missing required parameter: "databaseId"')
    end

    if collection_id.nil?
        raise Appwrite::Exception.new('Missing required parameter: "collectionId"')
    end

    if key.nil?
        raise Appwrite::Exception.new('Missing required parameter: "key"')
    end

    if elements.nil?
        raise Appwrite::Exception.new('Missing required parameter: "elements"')
    end

    if required.nil?
        raise Appwrite::Exception.new('Missing required parameter: "required"')
    end

    path = '/databases/{databaseId}/collections/{collectionId}/attributes/enum'
        .gsub('{databaseId}', @database_id)
        .gsub('{collectionId}', collection_id)

    params = {
        key: key,
        elements: elements,
        required: required,
        default: default,
        array: array,
    }

    headers = {
        "content-type": 'application/json',
    }

    @client.call(
        method: 'POST',
        path: path,
        headers: headers,
        params: params,
        response_type: Models::AttributeEnum
    )
end