Class: Verizon::FirmwareV3Api

Inherits:
BaseApi
  • Object
show all
Defined in:
lib/verizon/apis/firmware_v3_api.rb

Overview

FirmwareV3Api

Constant Summary

Constants inherited from BaseApi

BaseApi::GLOBAL_ERRORS

Instance Attribute Summary

Attributes inherited from BaseApi

#config, #http_call_back

Instance Method Summary collapse

Methods inherited from BaseApi

#initialize, #new_parameter, #new_request_builder, #new_response_handler, user_agent, user_agent_parameters

Constructor Details

This class inherits a constructor from Verizon::BaseApi

Instance Method Details

#list_available_firmware(acc, protocol) ⇒ ApiResponse

This endpoint allows user to list the firmware of an account. a specific protocol type used.

Parameters:

  • acc (String)

    Required parameter: Account identifier.

  • protocol (FirmwareProtocol)

    Required parameter: Filter to retrieve

Returns:

  • (ApiResponse)

    Complete http response with raw body and status code.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/verizon/apis/firmware_v3_api.rb', line 14

def list_available_firmware(acc,
                            protocol)
  @api_call
    .request(new_request_builder(HttpMethodEnum::GET,
                                 '/firmware/{acc}',
                                 Server::SOFTWARE_MANAGEMENT_V3)
               .template_param(new_parameter(acc, key: 'acc')
                                .is_required(true)
                                .should_encode(true))
               .query_param(new_parameter(protocol, key: 'protocol')
                             .is_required(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(And.new('thingspace_oauth', 'VZ-M2M-Token')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:custom_type_deserializer))
                .deserialize_into(FirmwarePackage.method(:from_hash))
                .is_api_response(true)
                .is_response_array(true)
                .local_error('400',
                             'Unexpected error.',
                             FotaV3ResultException))
    .execute
end

#report_device_firmware(acc, device_id) ⇒ ApiResponse

Ask a device to report its firmware version asynchronously.

Parameters:

  • acc (String)

    Required parameter: Account identifier.

  • device_id (String)

    Required parameter: Device identifier.

Returns:

  • (ApiResponse)

    Complete http response with raw body and status code.



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/verizon/apis/firmware_v3_api.rb', line 72

def report_device_firmware(acc,
                           device_id)
  @api_call
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/firmware/{acc}/async/{deviceId}',
                                 Server::SOFTWARE_MANAGEMENT_V3)
               .template_param(new_parameter(acc, key: 'acc')
                                .is_required(true)
                                .should_encode(true))
               .template_param(new_parameter(device_id, key: 'deviceId')
                                .is_required(true)
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .auth(And.new('thingspace_oauth', 'VZ-M2M-Token')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:custom_type_deserializer))
                .deserialize_into(DeviceFirmwareVersionUpdateResult.method(:from_hash))
                .is_api_response(true)
                .local_error('400',
                             'Unexpected error.',
                             FotaV3ResultException))
    .execute
end

#synchronize_device_firmware(acc, body) ⇒ ApiResponse

Synchronize ThingSpace with the FOTA server for up to 100 devices. info synchronously.

Parameters:

  • acc (String)

    Required parameter: Account identifier.

  • body (FirmwareImei)

    Required parameter: DeviceIds to get firmware

Returns:

  • (ApiResponse)

    Complete http response with raw body and status code.



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/verizon/apis/firmware_v3_api.rb', line 43

def synchronize_device_firmware(acc,
                                body)
  @api_call
    .request(new_request_builder(HttpMethodEnum::PUT,
                                 '/firmware/{acc}/devices',
                                 Server::SOFTWARE_MANAGEMENT_V3)
               .template_param(new_parameter(acc, key: 'acc')
                                .is_required(true)
                                .should_encode(true))
               .header_param(new_parameter('application/json', key: 'Content-Type'))
               .body_param(new_parameter(body)
                            .is_required(true))
               .header_param(new_parameter('application/json', key: 'accept'))
               .body_serializer(proc do |param| param.to_json unless param.nil? end)
               .auth(And.new('thingspace_oauth', 'VZ-M2M-Token')))
    .response(new_response_handler
                .deserializer(APIHelper.method(:custom_type_deserializer))
                .deserialize_into(DeviceFirmwareList.method(:from_hash))
                .is_api_response(true)
                .local_error('400',
                             'Unexpected error.',
                             FotaV3ResultException))
    .execute
end