class ZabbixApi class Mediatypes def initialize(client) @client = client @default_mediatype_options = { :description => "", #Name :type => 0, #0 - Email, 1 - External script, 2 - SMS, 3 - Jabber, 100 - EzTexting :smtp_server => "", :smtp_helo => "", :smtp_email => "", #Email address of Zabbix server :exec_path => "", #Name of external script :gsm_modem => "", #Serial device name of GSM modem :username => "", #Jabber user name used by Zabbix server :passwd => "" #Jabber password used by Zabbix server } end # Create MediaType # # * *Args* : # - +data+ -> Hash with :description => "MediaGroup" and mediatype options # * *Returns* : # - Nil or Integer def create(data) result = @client.api_request(:method => "mediatype.create", :params => data) result ? result['mediatypeids'][0].to_i : nil end # Add MediaType # Synonym create def add(data) create(data) end # Delete MediaType # # * *Args* : # - +data+ -> Array with mediatypeids # * *Returns* : # - Nil or Integer def delete(data) result = @client.api_request(:method => "mediatype.delete", :params => [data]) result ? result['mediatypeids'][0].to_i : nil end # Destroy MediaType # Synonym delete def destroy(data) delete(data) end # Get MediaType info # # * *Args* : # - +data+ -> Hash with :description => "MediaType" # * *Returns* : # - Nil or Integer def get_full_data(data) @client.api_request( :method => "mediatype.get", :params => { :search => {:description => data[:description]}, :output => "extend" } ) end def get(data) get_full_data(data) end # Return MediaTypeid # # * *Args* : # - +data+ -> Hash with :description => "MediaType" # * *Returns* : # - Nil or Integer def get_id(data) result = get_full_data(data) mediatypeid = nil result.each { |mt| mediatypeid = mt['mediatypeid'].to_i if mt['description'] == data[:description] } mediatypeid end # Return MediaTypeid # # * *Args* : # - +data+ -> Hash with :description => "MediaType" # * *Returns* : # - Nil or Integer def update(data) result = @client.api_request(:method => "mediatype.update", :params => data) result.empty? ? nil : result['mediatypeids'][0].to_i end # Return MediaTypeid # # * *Args* : # - +data+ -> Hash with :name => "UserGroup" # * *Returns* : # - Integer def create_or_update(data) mediatypeid = get_id(:description => data[:description], :mediatypeid => data[:mediatypeid]) mediatypeid ? update(data.merge(:mediatypeid => mediatypeid)) : create(data) end end end