code: public static ProxyInvocation newInstance(
  		ProxyInvocation.Template template, Object proxy, Method method, Object[] args) {
  		
  		return new ProxyInvocation(InvocationContext.newBuilder()
  				.setEndpoint(template.endpoint)
  				.setProxy(proxy)
  				.setRequest(method)
  				.setArguments(args)
  				.build(), template);
  	}
docs: <p>Creates a new instance of {@link ProxyInvocation} which models a command for request invocation
  on the proxy of an endpoint definition.</p>
  
  @param template
  the instance of {@link ProxyInvocation.Template} which defines the stages in invocation
  <br><br>
  @param proxy
  the instance of the proxy for the endpoint definition on which the request was invoked
  <br><br>
  @param method
  the {@link Method} on the endpoint definition interface representing the invoked request
  <br><br>
  @param args
  the runtime method arguments which were passed to the request invoked on the proxy
  <br><br>
  @return an instance of {@link ProxyInvocation} which can be used to perform the request execution
  <br><br>
  @since 1.3.0