Class: Twilio::REST::Memory::V1::TraitGroupList

Inherits:
ListResource
  • Object
show all
Defined in:
lib/twilio-ruby/rest/memory/v1/trait_group.rb

Defined Under Namespace

Classes: PatchTraitGroupRequest, TraitDefinition, TraitGroupRequest, TraitGroupRequestTraits, ValidationRule

Instance Method Summary collapse

Constructor Details

#initialize(version, store_id: nil) ⇒ TraitGroupList

Initialize the TraitGroupList

Parameters:

  • version (Version)

    Version that contains the resource



254
255
256
257
258
259
260
261
262
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 254

def initialize(version, store_id: nil)
    
    apiV1Version = ApiV1Version.new version.domain, version
    super(apiV1Version)
    # Path Solution
    @solution = { store_id: store_id }
    @uri = "/ControlPlane/Stores/#{@solution[:store_id]}/TraitGroups"
    
end

Instance Method Details

#create(trait_group_request: :unset) ⇒ TraitGroupInstance

Create the TraitGroupInstance

Parameters:

Returns:



267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 267

def create(trait_group_request: :unset
)

    headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
    headers['Content-Type'] = 'application/json'
    
    
    
    
    payload = @version.create('POST', @uri, headers: headers, data: trait_group_request.to_json)
    TraitGroupInstance.new(
        @version,
        payload,
        store_id: @solution[:store_id],
    )
end

#create_with_metadata(trait_group_request: :unset) ⇒ TraitGroupInstance

Create the TraitGroupInstanceMetadata

Parameters:

Returns:



288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 288

def (trait_group_request: :unset
)

    headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
    headers['Content-Type'] = 'application/json'
    
    
    
    
    response = @version.('POST', @uri, headers: headers, data: trait_group_request.to_json)
    trait_group_instance = TraitGroupInstance.new(
        @version,
        response.body,
        store_id: @solution[:store_id],
    )
    TraitGroupInstanceMetadata.new(
        @version,
        trait_group_instance,
        response.headers,
        response.status_code
    )
end

#eachObject

When passed a block, yields TraitGroupInstance records from the API. This operation lazily loads records as efficiently as possible until the limit is reached.



398
399
400
401
402
403
404
405
406
407
408
409
410
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 398

def each
    limits = @version.read_limits

    page = self.page(page_size: limits[:page_size], )

    return [].each if page.nil?

    result = @version.stream(page,
        limit: limits[:limit],
        page_limit: limits[:page_limit])
    return [].each if result.nil?
    result.each {|x| yield x}
end

#get_page(target_url) ⇒ Page

Retrieve a single page of TraitGroupInstance records from the API. Request is executed immediately.

Parameters:

  • target_url (String)

    API-generated URL for the requested results page

Returns:

  • (Page)

    Page of TraitGroupInstance



441
442
443
444
445
446
447
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 441

def get_page(target_url)
    response = @version.domain.request(
        'GET',
        target_url
    )
TraitGroupPage.new(@version, response, @solution)
end

#list(include_traits: :unset, page_token: :unset, order_by: :unset, limit: nil, page_size: nil) ⇒ Array

Lists TraitGroupInstance records from the API as a list. Unlike stream(), this operation is eager and will load limit records into memory before returning.

Parameters:

  • include_traits (Boolean) (defaults to: :unset)

    Whether to include trait definitions in the response

  • page_token (String) (defaults to: :unset)

    The token for the page of results to retrieve.

  • order_by (String) (defaults to: :unset)

    Either 'ASC' or 'DESC' to sort results ascending or descending respectively.

  • limit (Integer) (defaults to: nil)

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit

  • page_size (Integer) (defaults to: nil)

    Number of records to fetch per request, when not set will use the default value of 50 records. If no page_size is defined but a limit is defined, stream() will attempt to read the limit with the most efficient page size, i.e. min(limit, 1000)

Returns:

  • (Array)

    Array of up to limit results



326
327
328
329
330
331
332
333
334
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 326

def list(include_traits: :unset, page_token: :unset, order_by: :unset, limit: nil, page_size: nil)
    self.stream(
        include_traits: include_traits,
        page_token: page_token,
        order_by: order_by,
        limit: limit,
        page_size: page_size
    ).entries
end

#list_with_metadata(include_traits: :unset, page_token: :unset, order_by: :unset, limit: nil, page_size: nil) ⇒ Array

Returns Array of up to limit results.

Parameters:

  • limit (Integer) (defaults to: nil)

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit

  • page_size (Integer) (defaults to: nil)

    Number of records to fetch per request, when not set will use the default value of 50 records. If no page_size is defined but a limit is defined, stream() will attempt to read the limit with the most efficient page size, i.e. min(limit, 1000)

Returns:

  • (Array)

    Array of up to limit results



378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 378

def (include_traits: :unset, page_token: :unset, order_by: :unset, limit: nil, page_size: nil)
    limits = @version.read_limits(limit, page_size)
    params = Twilio::Values.of({
        'includeTraits' => include_traits,
        'pageToken' => page_token,
        'orderBy' => order_by,
        
        'PageSize' => limits[:page_size],
    });
    headers = Twilio::Values.of({})

    response = @version.page('GET', @uri, params: params, headers: headers)

    TraitGroupPageMetadata.new(@version, response, @solution, limits[:limit])
end

#page(include_traits: :unset, page_token: :unset, order_by: :unset, page_size: :unset) ⇒ Page

Returns Page of TraitGroupInstance.

Returns:

  • (Page)

    Page of TraitGroupInstance



420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 420

def page(include_traits: :unset, page_token: :unset, order_by: :unset, page_size: :unset)
    params = Twilio::Values.of({
        'includeTraits' => include_traits,
        'pageToken' => page_token,
        'orderBy' => order_by,
                                    'PageSize' => page_size,
    })
    headers = Twilio::Values.of({})
    
    

    response = @version.page('GET', @uri, params: params, headers: headers)

    TraitGroupPage.new(@version, response, @solution)
end

#stream(include_traits: :unset, page_token: :unset, order_by: :unset, limit: nil, page_size: nil) ⇒ Enumerable

Streams Instance records from the API as an Enumerable. This operation lazily loads records as efficiently as possible until the limit is reached.

Parameters:

  • include_traits (Boolean) (defaults to: :unset)

    Whether to include trait definitions in the response

  • page_token (String) (defaults to: :unset)

    The token for the page of results to retrieve.

  • order_by (String) (defaults to: :unset)

    Either 'ASC' or 'DESC' to sort results ascending or descending respectively.

  • limit (Integer) (defaults to: nil)

    Upper limit for the number of records to return. stream() guarantees to never return more than limit. Default is no limit

  • page_size (Integer) (defaults to: nil)

    Number of records to fetch per request, when not set will use the default value of 50 records. If no page_size is defined but a limit is defined, stream() will attempt to read the limit with the most efficient page size, i.e. min(limit, 1000)

Returns:

  • (Enumerable)

    Enumerable that will yield up to limit results



350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 350

def stream(include_traits: :unset, page_token: :unset, order_by: :unset, limit: nil, page_size: nil)
    limits = @version.read_limits(limit, page_size)

    page = self.page(
        include_traits: include_traits,
        page_token: page_token,
        order_by: order_by,
        page_size: limits[:page_size], )

    return [].each if page.nil?

    result = @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
    return [].each if result.nil?
    result
end

#to_sObject

Provide a user friendly representation



452
453
454
# File 'lib/twilio-ruby/rest/memory/v1/trait_group.rb', line 452

def to_s
    '#<Twilio.Memory.V1.TraitGroupList>'
end