code: def get_item(opts)
        opts = opts.clone
        [:item_shape, :item_ids].each do |k|
          validate_param(opts, k, true)
        end
        req = build_soap! do |type, builder|
          if(type == :header)
          else
            builder.nbuild.GetItem {
              builder.nbuild.parent.default_namespace = @default_ns
              builder.item_shape!(opts[:item_shape])
              builder.item_ids!(opts[:item_ids])
            }
          end
        end
        do_soap_request(req, response_class: EwsResponse)
      end
docs: Gets items from the Exchange store
   @see http://msdn.microsoft.com/en-us/library/aa565934(v=EXCHG.140).aspx
  
   @param [Hash] opts
   @option opts [Hash] :item_shape The item shape properties
     Ex: {:base_shape => 'Default'}
   @option opts [Array<Hash>] :item_ids ItemIds Hash. The keys in these Hashes can be
     :item_id, :occurrence_item_id, or :recurring_master_item_id. Please see the
     Microsoft docs for more information.
   @example
     opts = {
       :item_shape => {:base_shape => 'Default'},
       :item_ids   => [
         {:item_id => {:id => 'id1'}},
         {:occurrence_item_id => {:recurring_master_id => 'rid1', :change_key => 'ck', :instance_index => 1}},
         {:recurring_master_item_id => {:occurrence_id => 'oid1', :change_key => 'ck'}}
         ]}