def subscription(*args)
      first_param, second_param, third_param, fourth_param, = args
      url, options = if first_param.is_a?(Resource::Entry) && first_param.uri
                       [url_for_resource(first_param), second_param || {}]
                     elsif first_param.is_a?(String) && second_param.is_a?(String) && (third_param.is_a?(String) || third_param.is_a?(Symbol))
                       [url_for_path(subscription_partnership_path(first_param, second_param, third_param)), fourth_param || {}]
                     elsif first_param.is_a?(String) && (second_param.is_a?(String) || second_param.is_a?(Symbol))
                       [url_for_path(subscription_user_path(first_param, second_param)), third_param || {}]
                     elsif first_param.is_a?(Resource::Subscription)
                       [url_for_resource(first_param), second_param || {}]
                     else
                       raise 'Error: Invalid parameters!'
                     end
      url = append_query_params(url, options)
      client.get(url, options) do |response|
        a_hash = parse(response)
        Resource::Subscription.from_coach a_hash
      end
    end
def subscription(*args)
      first_param, second_param, third_param, fourth_param, = args
      url, options = if first_param.is_a?(Resource::Entry) && first_param.uri
                       [url_for_resource(first_param), second_param || {}]
                     elsif first_param.is_a?(String) && second_param.is_a?(String) && (third_param.is_a?(String) || third_param.is_a?(Symbol))
                       [url_for_path(subscription_partnership_path(first_param, second_param, third_param)), fourth_param || {}]
                     elsif first_param.is_a?(String) && (second_param.is_a?(String) || second_param.is_a?(Symbol))
                       [url_for_path(subscription_user_path(first_param, second_param)), third_param || {}]
                     elsif first_param.is_a?(Resource::Subscription)
                       [url_for_resource(first_param), second_param || {}]
                     else
                       raise 'Error: Invalid parameters!'
                     end
      url = append_query_params(url, options)
      client.get(url, options) do |response|
        a_hash = parse(response)
        Resource::Subscription.from_coach a_hash
      end
    end
Retrieves a subscription.

 @param [String|Subscription] first_user | subscription
 @param [String] second_user | sport
 @param [String|Hash] sport | options
 @param [Hash|nil] options

 ====Examples
 @example
   subscription = @coach.subscription subscription
 @example
   subscription = @coach.subscription subscription, query: { start: 0, size: 10}
 @example
   subscription = @coach.subscription 'newuser4', 'running'
 @example
   subscription = @coach.subscription 'newuser4', 'running', query: { start: 0, size: 10}
 @example
   subscription = @coach.subscription 'newuser4','newuser5', 'running'
 @example
   subscription = @coach.subscription 'newuser4','newuser5', 'running', query: { start: 0, size: 10}
 @example
   subscription = @coach.subscription 'newuser4', :running
 @example
   subscription = @coach.subscription 'newuser4', :running, query: { start: 0, size: 10}
 @example
   subscription = @coach.subscription 'newuser4','newuser5', :running
 @example
   subscription = @coach.subscription 'newuser4','newuser5', :running, query: { start: 0, size: 10}