code: public ListSecurityGroupsResponse listSecurityGroups(ListSecurityGroupsRequest request) {
          checkNotNull(request, "request should not be null.");
          InternalRequest internalRequest = this.createRequest(request, HttpMethodName.GET, SECURITYGROUP_PREFIX);
          if (!Strings.isNullOrEmpty(request.getMarker())) {
              internalRequest.addParameter("marker", request.getMarker());
          }
          if (request.getMaxKeys() > 0) {
              internalRequest.addParameter("maxKeys", String.valueOf(request.getMaxKeys()));
          }
          if (!Strings.isNullOrEmpty(request.getInstanceId())) {
              internalRequest.addParameter("instanceId", request.getInstanceId());
          }
          if (!Strings.isNullOrEmpty(request.getVpcId())) {
              internalRequest.addParameter("vpcId", request.getVpcId());
          }
          return invokeHttpClient(internalRequest, ListSecurityGroupsResponse.class);
      }
docs: Listing SecurityGroup owned by the authenticated user.
  
  @param request The request containing all options for listing SecurityGroup owned by user.
  @return The response with list of SecurityGroup which contains SecurityGroup rules owned by user.