dashboard-api 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +34 -0
  3. data/.gitignore +5 -4
  4. data/.travis.yml +20 -0
  5. data/Gemfile +9 -5
  6. data/Gemfile.lock +63 -31
  7. data/README.md +134 -138
  8. data/Rakefile +9 -7
  9. data/dashboard-api.gemspec +28 -28
  10. data/doc/Admins.html +603 -603
  11. data/doc/Clients.html +276 -276
  12. data/doc/DashboardAPI.html +603 -603
  13. data/doc/DashboardAPIVersion.html +159 -159
  14. data/doc/Devices.html +879 -879
  15. data/doc/Networks.html +1382 -1382
  16. data/doc/Organizations.html +1477 -1477
  17. data/doc/Phones.html +641 -641
  18. data/doc/SAML.html +758 -758
  19. data/doc/SSIDs.html +523 -523
  20. data/doc/Switchports.html +526 -526
  21. data/doc/Templates.html +378 -378
  22. data/doc/VLANs.html +762 -762
  23. data/doc/_index.html +235 -235
  24. data/doc/class_list.html +51 -51
  25. data/doc/css/full_list.css +58 -58
  26. data/doc/css/style.css +481 -481
  27. data/doc/file.README.html +248 -248
  28. data/doc/file_list.html +56 -56
  29. data/doc/frames.html +17 -17
  30. data/doc/index.html +248 -248
  31. data/doc/js/app.js +243 -243
  32. data/doc/js/full_list.js +216 -216
  33. data/doc/js/jquery.js +3 -3
  34. data/doc/method_list.html +523 -523
  35. data/doc/top-level-namespace.html +113 -113
  36. data/lib/admins.rb +37 -37
  37. data/lib/clients.rb +12 -12
  38. data/lib/dashboard-api.rb +82 -83
  39. data/lib/dashboard-api/version.rb +6 -6
  40. data/lib/devices.rb +57 -57
  41. data/lib/networks.rb +108 -108
  42. data/lib/organizations.rb +110 -115
  43. data/lib/phones.rb +40 -40
  44. data/lib/saml.rb +47 -47
  45. data/lib/ssids.rb +33 -33
  46. data/lib/switchports.rb +33 -33
  47. data/lib/templates.rb +18 -18
  48. data/lib/vlans.rb +49 -49
  49. metadata +7 -5
@@ -1,6 +1,6 @@
1
- # Version number of the Gem build
2
- # @author Joe Letizia
3
- module DashboardAPIVersion
4
- # Current version number of the gem
5
- VERSION = "1.0.0"
6
- end
1
+ # Version number of the Gem build
2
+ # @author Joe Letizia
3
+ module DashboardAPIVersion
4
+ # Current version number of the gem
5
+ VERSION = "1.0.1"
6
+ end
@@ -1,57 +1,57 @@
1
- # Devices section of the Meraki Dashboard API
2
- # @author Joe Letizia
3
- module Devices
4
- # List all devices in a given network
5
- # @param [String] network_id network that you want to get devices for
6
- # @return [Array] array of hashes containing device information for all devices in the network
7
- def list_devices_in_network(network_id)
8
- self.make_api_call("/networks/#{network_id}/devices", 'GET')
9
- end
10
-
11
- # Device information for a specified device
12
- # @param [String] network_id the network id where the device exists
13
- # @param [String] device_serial the meraki serial number of the device you want to get
14
- # information for
15
- # @return [Hash] a hash containing all of the devices attributes
16
- def get_single_device(network_id, device_serial)
17
- self.make_api_call("/networks/#{network_id}/devices/#{device_serial}", 'GET')
18
- end
19
-
20
- # Uplink information for a specified device
21
- # @param [String] network_id network id where the device exists
22
- # @param [String] device_serial meraki serial number of the device you want to check
23
- # @return [Array] an array of hashes for each uplink and it's attributes
24
- def get_device_uplink_stats(network_id, device_serial)
25
- self.make_api_call("/networks/#{network_id}/devices/#{device_serial}/uplink", 'GET')
26
- end
27
-
28
- # Update a single devices attributes
29
- # @param [String] network_id dashboard network id where the device exists
30
- # @param [String] device_serial meraki serial number of the device you want to modify
31
- # @param [Hash] options hash containing the attributes you want to modify.
32
- # such as name, tags, longitude, latitude. A full list is found on the official Meraki API Docs
33
- # @return [Hash] a hash containing the devices new attribute set
34
- def update_device_attributes(network_id, device_serial, options)
35
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
36
- options = {:body => options}
37
- self.make_api_call("/networks/#{network_id}/devices/#{device_serial}", 'PUT', options)
38
- end
39
-
40
- # Claim a single device into a network
41
- # @param [String] network_id dashboard network id to claim device into
42
- # @param [Hash] options hash containing :serial => 'meraki device SN' you want to claim
43
- # @return [Integer] code returns the HTTP code of the API call
44
- def claim_device_into_network(network_id, options)
45
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
46
- options = {:body => options}
47
- self.make_api_call("/networks/#{network_id}/devices/claim", 'POST', options)
48
- end
49
-
50
- # Remove a single device from a network
51
- # @param [String] network_id dashboard network id to remove device from
52
- # @param [String] device_serial meraki serial number for device to remove
53
- # @return [Integer] http_code HTTP code for API call
54
- def remove_device_from_network(network_id, device_serial)
55
- self.make_api_call("/networks/#{network_id}/devices/#{device_serial}/remove", 'POST')
56
- end
57
- end
1
+ # Devices section of the Meraki Dashboard API
2
+ # @author Joe Letizia
3
+ module Devices
4
+ # List all devices in a given network
5
+ # @param [String] network_id network that you want to get devices for
6
+ # @return [Array] array of hashes containing device information for all devices in the network
7
+ def list_devices_in_network(network_id)
8
+ self.make_api_call("/networks/#{network_id}/devices", 'GET')
9
+ end
10
+
11
+ # Device information for a specified device
12
+ # @param [String] network_id the network id where the device exists
13
+ # @param [String] device_serial the meraki serial number of the device you want to get
14
+ # information for
15
+ # @return [Hash] a hash containing all of the devices attributes
16
+ def get_single_device(network_id, device_serial)
17
+ self.make_api_call("/networks/#{network_id}/devices/#{device_serial}", 'GET')
18
+ end
19
+
20
+ # Uplink information for a specified device
21
+ # @param [String] network_id network id where the device exists
22
+ # @param [String] device_serial meraki serial number of the device you want to check
23
+ # @return [Array] an array of hashes for each uplink and it's attributes
24
+ def get_device_uplink_stats(network_id, device_serial)
25
+ self.make_api_call("/networks/#{network_id}/devices/#{device_serial}/uplink", 'GET')
26
+ end
27
+
28
+ # Update a single devices attributes
29
+ # @param [String] network_id dashboard network id where the device exists
30
+ # @param [String] device_serial meraki serial number of the device you want to modify
31
+ # @param [Hash] options hash containing the attributes you want to modify.
32
+ # such as name, tags, longitude, latitude. A full list is found on the official Meraki API Docs
33
+ # @return [Hash] a hash containing the devices new attribute set
34
+ def update_device_attributes(network_id, device_serial, options)
35
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
36
+
37
+ self.make_api_call("/networks/#{network_id}/devices/#{device_serial}", 'PUT', options)
38
+ end
39
+
40
+ # Claim a single device into a network
41
+ # @param [String] network_id dashboard network id to claim device into
42
+ # @param [Hash] options hash containing :serial => 'meraki device SN' you want to claim
43
+ # @return [Integer] code returns the HTTP code of the API call
44
+ def claim_device_into_network(network_id, options)
45
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
46
+
47
+ self.make_api_call("/networks/#{network_id}/devices/claim", 'POST', options)
48
+ end
49
+
50
+ # Remove a single device from a network
51
+ # @param [String] network_id dashboard network id to remove device from
52
+ # @param [String] device_serial meraki serial number for device to remove
53
+ # @return [Integer] http_code HTTP code for API call
54
+ def remove_device_from_network(network_id, device_serial)
55
+ self.make_api_call("/networks/#{network_id}/devices/#{device_serial}/remove", 'POST')
56
+ end
57
+ end
@@ -1,108 +1,108 @@
1
- # Networks section of the Meraki Dashboard API
2
- # @author Joe Letizia
3
- module Networks
4
- # Returns the list of networks for a given organization
5
- # @param [String] org_id dashboard organization ID
6
- # @return [Array] an array of hashes containing the network details
7
- def get_networks(org_id)
8
- self.make_api_call("/organizations/#{org_id}/networks", 'GET')
9
- end
10
-
11
- # Returns the network details for a single network
12
- # @param [String] network_id dashboard network ID
13
- # @return [Hash] a hash containing the network details of the specific network
14
- def get_single_network(network_id)
15
- self.make_api_call("/networks/#{network_id}", 'GET')
16
- end
17
-
18
- # Updates a network's details
19
- # @param [String] network_id dashboard network ID
20
- # @param [Hash] options a hash containing any of the following keys:
21
- # name: the network name
22
- # tags: tags assigned to the network
23
- # @return [Hash] a hash containing the updated network details
24
- def update_network(network_id, options)
25
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
26
- options = {:body => options}
27
- self.make_api_call("/networks/#{network_id}",'PUT', options)
28
- end
29
-
30
- # Create a new Dashboard network
31
- # @param [String] org_id dashboard organization ID
32
- # @param [Hash] options a hash containing the following options:
33
- # name: the network name (REQUIRED)
34
- # type: the type of network (wireless, switch, appliance, or phone) (REQUIRED)
35
- # tags: tags for the network (NOT REQUIRED)
36
- # @return [Hash] a hash containing the new networks details
37
- def create_network(org_id, options)
38
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
39
- options = {:body => options}
40
- self.make_api_call("/organizations/#{org_id}/networks", 'POST', options)
41
- end
42
-
43
- # Delete an existing Dashboard network
44
- # @param [String] network_id dashboard netwok ID to delete
45
- # @return [Bool] status true if the network was deleted, false if not
46
- def delete_network(network_id)
47
- res = self.make_api_call("/networks/#{network_id}", 'DELETE')
48
- return res.code == 204 ? true : false
49
- end
50
-
51
- # Get AutoVPN settings for a specific network
52
- # @param [String] network_id dashboard network ID to get AutoVPN settings for
53
- # @return [Hash] a hash containing the AutoVPN details for the network
54
- def get_auto_vpn_settings(network_id)
55
- res = self.make_api_call("/networks/#{network_id}/siteToSiteVpn", 'GET')
56
- end
57
-
58
- # Update AutoVPN for a specific network
59
- # @param [String] network_id dashboard network ID to update AutoVPN settings for
60
- # @param [Hash] options options hash containing the following options:
61
- # mode: hub, spoke or none
62
- # hubs: an array of Hashes containing the hubId and a true or false for useDefaultRoute
63
- # subnets: an array of Hashes containing localSubnet and useVPN
64
- # @return [Hash]
65
- def update_auto_vpn_settings(network_id, options)
66
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
67
-
68
- options = {:body => options}
69
- res = self.make_api_call("/networks/#{network_id}/siteToSiteVpn", 'PUT', options)
70
- end
71
-
72
- # Get all MS access policies configured for a specific Dashboard network
73
- # @param [String] network_id dashboard network ID to get MS policies for
74
- # @return [Array] an array of hashes for containing the policy information
75
- def get_ms_access_policies(network_id)
76
- res = self.make_api_call("/networks/#{network_id}/accessPolicies", 'GET')
77
- return res
78
- end
79
-
80
- # Bind a single network to a configuration template
81
- # @param [String] network_id the source network that you want to bind to a tempalte
82
- # @param [Hash] options options hash that contains configTemplateId and autoBind values. Refer to the official
83
- # Meraki Dashboard API documentation for more information on these.
84
- # @return [Integer] HTTP Code
85
- def bind_network_to_template(network_id, options)
86
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
87
- options = {:body => options}
88
-
89
- self.make_api_call("/networks/#{network_id}/bind", 'POST', options)
90
- end
91
-
92
- # Unbind a single network from a configuration template
93
- # @param [String] network_id the network that you want to unbind from it's template
94
- # @return [Integer] HTTP Code
95
- def unbind_network_to_template(network_id)
96
- self.make_api_call("/networks/#{network_id}/unbind", 'POST')
97
- end
98
-
99
- # Return traffic analysis data for a network
100
- # @param [String] network_id network that you want data for
101
- # @param [Hash] options options hash containing a timespan and deviceType. Refer to the official
102
- # Meraki Dashboard API documentation for more information on these.
103
- def traffic_analysis(network_id, options)
104
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
105
- options = {:body => options}
106
- self.make_api_call("/networks/#{network_id}/traffic", 'GET', options)
107
- end
108
- end
1
+ # Networks section of the Meraki Dashboard API
2
+ # @author Joe Letizia
3
+ module Networks
4
+ # Returns the list of networks for a given organization
5
+ # @param [String] org_id dashboard organization ID
6
+ # @return [Array] an array of hashes containing the network details
7
+ def get_networks(org_id)
8
+ self.make_api_call("/organizations/#{org_id}/networks", 'GET')
9
+ end
10
+
11
+ # Returns the network details for a single network
12
+ # @param [String] network_id dashboard network ID
13
+ # @return [Hash] a hash containing the network details of the specific network
14
+ def get_single_network(network_id)
15
+ self.make_api_call("/networks/#{network_id}", 'GET')
16
+ end
17
+
18
+ # Updates a network's details
19
+ # @param [String] network_id dashboard network ID
20
+ # @param [Hash] options a hash containing any of the following keys:
21
+ # name: the network name
22
+ # tags: tags assigned to the network
23
+ # @return [Hash] a hash containing the updated network details
24
+ def update_network(network_id, options)
25
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
26
+
27
+ self.make_api_call("/networks/#{network_id}",'PUT', options)
28
+ end
29
+
30
+ # Create a new Dashboard network
31
+ # @param [String] org_id dashboard organization ID
32
+ # @param [Hash] options a hash containing the following options:
33
+ # name: the network name (REQUIRED)
34
+ # type: the type of network (wireless, switch, appliance, or phone) (REQUIRED)
35
+ # tags: tags for the network (NOT REQUIRED)
36
+ # @return [Hash] a hash containing the new networks details
37
+ def create_network(org_id, options)
38
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
39
+
40
+ self.make_api_call("/organizations/#{org_id}/networks", 'POST', options)
41
+ end
42
+
43
+ # Delete an existing Dashboard network
44
+ # @param [String] network_id dashboard netwok ID to delete
45
+ # @return [Bool] status true if the network was deleted, false if not
46
+ def delete_network(network_id)
47
+ res = self.make_api_call("/networks/#{network_id}", 'DELETE')
48
+ return res.code == 204 ? true : false
49
+ end
50
+
51
+ # Get AutoVPN settings for a specific network
52
+ # @param [String] network_id dashboard network ID to get AutoVPN settings for
53
+ # @return [Hash] a hash containing the AutoVPN details for the network
54
+ def get_auto_vpn_settings(network_id)
55
+ res = self.make_api_call("/networks/#{network_id}/siteToSiteVpn", 'GET')
56
+ end
57
+
58
+ # Update AutoVPN for a specific network
59
+ # @param [String] network_id dashboard network ID to update AutoVPN settings for
60
+ # @param [Hash] options options hash containing the following options:
61
+ # mode: hub, spoke or none
62
+ # hubs: an array of Hashes containing the hubId and a true or false for useDefaultRoute
63
+ # subnets: an array of Hashes containing localSubnet and useVPN
64
+ # @return [Hash]
65
+ def update_auto_vpn_settings(network_id, options)
66
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
67
+
68
+
69
+ res = self.make_api_call("/networks/#{network_id}/siteToSiteVpn", 'PUT', options)
70
+ end
71
+
72
+ # Get all MS access policies configured for a specific Dashboard network
73
+ # @param [String] network_id dashboard network ID to get MS policies for
74
+ # @return [Array] an array of hashes for containing the policy information
75
+ def get_ms_access_policies(network_id)
76
+ res = self.make_api_call("/networks/#{network_id}/accessPolicies", 'GET')
77
+ return res
78
+ end
79
+
80
+ # Bind a single network to a configuration template
81
+ # @param [String] network_id the source network that you want to bind to a tempalte
82
+ # @param [Hash] options options hash that contains configTemplateId and autoBind values. Refer to the official
83
+ # Meraki Dashboard API documentation for more information on these.
84
+ # @return [Integer] HTTP Code
85
+ def bind_network_to_template(network_id, options)
86
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
87
+
88
+
89
+ self.make_api_call("/networks/#{network_id}/bind", 'POST', options)
90
+ end
91
+
92
+ # Unbind a single network from a configuration template
93
+ # @param [String] network_id the network that you want to unbind from it's template
94
+ # @return [Integer] HTTP Code
95
+ def unbind_network_to_template(network_id)
96
+ self.make_api_call("/networks/#{network_id}/unbind", 'POST')
97
+ end
98
+
99
+ # Return traffic analysis data for a network
100
+ # @param [String] network_id network that you want data for
101
+ # @param [Hash] options options hash containing a timespan and deviceType. Refer to the official
102
+ # Meraki Dashboard API documentation for more information on these.
103
+ def traffic_analysis(network_id, options)
104
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
105
+
106
+ self.make_api_call("/networks/#{network_id}/traffic", 'GET', options)
107
+ end
108
+ end
@@ -1,115 +1,110 @@
1
- # Organization section of the Meraki Dashboard API
2
- # @author Joe Letizia
3
- module Organizations
4
- # Returns information about an organization
5
- # @param [String] org_id dashboard organization ID
6
- # @return [Hash] results contains the org id and name of the given organization
7
- def get_organization(org_id)
8
- self.make_api_call("/organizations/#{org_id}", 'GET')
9
- end
10
-
11
- # Returns the current license state for a given organization
12
- # @param [String] org_id dashboard organization ID
13
- # @return [Hash] results contains the current license state information
14
- def get_license_state(org_id)
15
- self.make_api_call("/organizations/#{org_id}/licenseState", 'GET')
16
- end
17
-
18
- # Returns the current inventory for an organization
19
- # @param [String] org_id dashboard organization ID
20
- # @return [Array] an array of hashes containg information on each individual device
21
- def get_inventory(org_id)
22
- self.make_api_call("/organizations/#{org_id}/inventory", 'GET')
23
- end
24
-
25
- # Returns the current SNMP status for an organization
26
- # @param [String] org_id dashboard organization ID
27
- # @return [Hash] a hash containing all SNMP configuration information for an organization
28
- def get_snmp_settings(org_id)
29
- self.make_api_call("/organizations/#{org_id}/snmp", 'GET')
30
- end
31
-
32
- # Updates the current SNMP status for an organization
33
- # @param [String] org_id dashboard organization ID
34
- # @param [Hash] options a hash containing all updated SNMP configuration information for an organization. Please
35
- # refer to official Dashboard API documentation for more information on these options: v2cEnabled, v3Enabled,
36
- # v3AuthMode, v3AuthPass, v3PrivMode, v3PrivPass, peerIps
37
- # @return [Hash] a hash containing all SNMP configuration information for an organization
38
- def update_snmp_settings(org_id, options)
39
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
40
-
41
- options = {:body => options}
42
- self.make_api_call("/organizations/#{org_id}/snmp", 'PUT', options)
43
- end
44
-
45
- # Returns the configurations for an organizations 3rd party VPN peers
46
- # @param [String] org_id dashboard organization ID
47
- # @return [Array] an arrry of hashes containing the configuration information
48
- # for each 3rd party VPN peer
49
- def get_third_party_peers(org_id)
50
- self.make_api_call("/organizations/#{org_id}/thirdPartyVPNPeers", 'GET')
51
- end
52
-
53
- # Updates your third party peers
54
- # @param [String] org_id dashboard organization ID
55
- # @params [Array] options An array of Hashes representing all configured third party peer. Takes the keys of name,
56
- # publicIp, privateSubnets and secret
57
- # @return [Array] returns the array of hashes for all currently configured 3rd party peers
58
- def update_third_party_peers(org_id, options)
59
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
60
-
61
- options = {:body => options}
62
- self.make_api_call("/organizations/#{org_id}/thirdPartyVPNPeers", 'PUT', options)
63
- end
64
-
65
- # Returns all organizations a user is an administrator on
66
- # @return [Array] an array of hashes containing the organizations and their attributes
67
- def list_all_organizations
68
- self.make_api_call("/organizations", 'GET')
69
- end
70
-
71
- # Update an organization
72
- # @param [String] org_id the organization ID that you want to update
73
- # @param [Hash] options an options hash containing the org ID and new name of the org
74
- # @return [Hash] the updated attributes of the organization
75
- def update_organization(org_id, options)
76
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
77
-
78
- options = {:body => options}
79
- self.make_api_call("/organizations/#{org_id}", 'PUT', options)
80
- end
81
-
82
- # Create a new organization
83
- # @param [Hash] options an options hash containing the name of the new organization
84
- # @return [Hash] the attributes of the newly created organization
85
- def create_organization(options)
86
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
87
-
88
- options = {:body => options}
89
- self.make_api_call("/organizations", 'POST', options)
90
- end
91
-
92
- # Clone an organization
93
- # @param [String] source_org_id the source organization that we want to clone from
94
- # @param [Hash] options options hash containing the attributes for the new organization
95
- # @return [Hash] the attributes of the newly cloned organization
96
- def clone_organization(source_org_id, options)
97
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
98
-
99
- options = {:body => options}
100
- self.make_api_call("/organizations/#{source_org_id}/clone", 'POST', options)
101
- end
102
-
103
- # Claim something
104
- # @param [String] org_id the organization that you want to claim to
105
- # @param [Hash] options a hash containing information about what you want to claim. This can be order,
106
- # serial, licenseKey and licenseMode. Refer to the official Dashboard API documentation for more information
107
- # about these
108
- # @return [Integer] HTTP Code
109
- def claim(org_id, options)
110
- raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
111
-
112
- options = {:body => options}
113
- self.make_api_call("/organizations/#{org_id}/claim", 'POST', options)
114
- end
115
- end
1
+ # Organization section of the Meraki Dashboard API
2
+ # @author Joe Letizia
3
+ module Organizations
4
+ # Returns information about an organization
5
+ # @param [String] org_id dashboard organization ID
6
+ # @return [Hash] results contains the org id and name of the given organization
7
+ def get_organization(org_id)
8
+ self.make_api_call("/organizations/#{org_id}", 'GET')
9
+ end
10
+
11
+ # Returns the current license state for a given organization
12
+ # @param [String] org_id dashboard organization ID
13
+ # @return [Hash] results contains the current license state information
14
+ def get_license_state(org_id)
15
+ self.make_api_call("/organizations/#{org_id}/licenseState", 'GET')
16
+ end
17
+
18
+ # Returns the current inventory for an organization
19
+ # @param [String] org_id dashboard organization ID
20
+ # @return [Array] an array of hashes containg information on each individual device
21
+ def get_inventory(org_id)
22
+ self.make_api_call("/organizations/#{org_id}/inventory", 'GET')
23
+ end
24
+
25
+ # Returns the current SNMP status for an organization
26
+ # @param [String] org_id dashboard organization ID
27
+ # @return [Hash] a hash containing all SNMP configuration information for an organization
28
+ def get_snmp_settings(org_id)
29
+ self.make_api_call("/organizations/#{org_id}/snmp", 'GET')
30
+ end
31
+
32
+ # Updates the current SNMP status for an organization
33
+ # @param [String] org_id dashboard organization ID
34
+ # @param [Hash] options a hash containing all updated SNMP configuration information for an organization. Please
35
+ # refer to official Dashboard API documentation for more information on these options: v2cEnabled, v3Enabled,
36
+ # v3AuthMode, v3AuthPass, v3PrivMode, v3PrivPass, peerIps
37
+ # @return [Hash] a hash containing all SNMP configuration information for an organization
38
+ def update_snmp_settings(org_id, options)
39
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
40
+
41
+
42
+ self.make_api_call("/organizations/#{org_id}/snmp", 'PUT', options)
43
+ end
44
+
45
+ # Returns the configurations for an organizations 3rd party VPN peers
46
+ # @param [String] org_id dashboard organization ID
47
+ # @return [Array] an arrry of hashes containing the configuration information
48
+ # for each 3rd party VPN peer
49
+ def get_third_party_peers(org_id)
50
+ self.make_api_call("/organizations/#{org_id}/thirdPartyVPNPeers", 'GET')
51
+ end
52
+
53
+ # Updates your third party peers
54
+ # @param [String] org_id dashboard organization ID
55
+ # @params [Array] options An array of Hashes representing all configured third party peer. Takes the keys of name,
56
+ # publicIp, privateSubnets and secret
57
+ # @return [Array] returns the array of hashes for all currently configured 3rd party peers
58
+ def update_third_party_peers(org_id, options)
59
+ raise 'Options were not passed as an Array' if !options.is_a?(Array)
60
+
61
+ self.make_api_call("/organizations/#{org_id}/thirdPartyVPNPeers", 'PUT', options)
62
+ end
63
+
64
+ # Returns all organizations a user is an administrator on
65
+ # @return [Array] an array of hashes containing the organizations and their attributes
66
+ def list_all_organizations
67
+ self.make_api_call("/organizations", 'GET')
68
+ end
69
+
70
+ # Update an organization
71
+ # @param [String] org_id the organization ID that you want to update
72
+ # @param [Hash] options an options hash containing the org ID and new name of the org
73
+ # @return [Hash] the updated attributes of the organization
74
+ def update_organization(org_id, options)
75
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
76
+
77
+ self.make_api_call("/organizations/#{org_id}", 'PUT', options)
78
+ end
79
+
80
+ # Create a new organization
81
+ # @param [Hash] options an options hash containing the name of the new organization
82
+ # @return [Hash] the attributes of the newly created organization
83
+ def create_organization(options)
84
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
85
+
86
+ self.make_api_call("/organizations", 'POST', options)
87
+ end
88
+
89
+ # Clone an organization
90
+ # @param [String] source_org_id the source organization that we want to clone from
91
+ # @param [Hash] options options hash containing the attributes for the new organization
92
+ # @return [Hash] the attributes of the newly cloned organization
93
+ def clone_organization(source_org_id, options)
94
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
95
+
96
+ self.make_api_call("/organizations/#{source_org_id}/clone", 'POST', options)
97
+ end
98
+
99
+ # Claim something
100
+ # @param [String] org_id the organization that you want to claim to
101
+ # @param [Hash] options a hash containing information about what you want to claim. This can be order,
102
+ # serial, licenseKey and licenseMode. Refer to the official Dashboard API documentation for more information
103
+ # about these
104
+ # @return [Integer] HTTP Code
105
+ def claim(org_id, options)
106
+ raise 'Options were not passed as a Hash' if !options.is_a?(Hash)
107
+
108
+ self.make_api_call("/organizations/#{org_id}/claim", 'POST', options)
109
+ end
110
+ end