def offset(self,
               geometries,
               offsetDistance,
               offsetUnit,
               offsetHow="esriGeometryOffsetRounded",
               bevelRatio=10,
               simplifyResult=False,
               sr=None,
               ):
        """
        The offset operation is performed on a geometry service resource. This 
        operation constructs geometries that are offset from the given input geometries.
        
        Inputs:
            geometries - array of geometries to be offset (structured as JSON geometry 
                         objects returned by the ArcGIS REST API).
            sr - spatial reference of the input geometries WKID.
            offsetDistance - the distance for constructing an offset based on the 
                             input geometries.
            offsetUnit - A unit for offset distance. If a unit is not specified, 
                         the units are derived from sr.
            offsetHow - determines how outer corners between segments are handled.
            bevelRatio -  is multiplied by the offset distance, and the result determines 
                          how far a mitered offset intersection can be located 
                          before it is bevelled.
            simplifyResult - if set to true, then self intersecting loops will be 
                             removed from the result offset geometries.
        """
        allowedHow = ["esriGeometryOffsetRounded",
                      "esriGeometryOffsetBevelled",
                      "esriGeometryOffsetMitered"]
        if offsetHow not in allowedHow:
            raise AttributeError("Invalid Offset How value")
        url = self._url + "/offset"
        params = {
            "f" : "json",
            "sr" : sr,
            "geometries": self.__geometryListToGeomTemplate(geometries=geometries),
            "offsetDistance": offsetDistance,
            "offsetUnit" : offsetUnit,
            "offsetHow" : offsetHow,
            "bevelRatio" : bevelRatio,
            "simplifyResult" : simplifyResult
        }
        return self._get(url=url, param_dict=params,
                            securityHandler=self._securityHandler,
                            proxy_url=self._proxy_url,
                           proxy_port=self._proxy_port)