public function createWatermark(
        $bucket, 
        $key,
        $options = array()
    ) {
        list(
            $config,
            $verticalAlignment,
            $horizontalAlignment,
            $verticalOffsetInPixel,
            $horizontalOffsetInPixel
        ) = $this->parseOptions(
            $options,
            'config',
            'verticalAlignment',
            'horizontalAlignment',
            'verticalOffsetInPixel',
            'horizontalOffsetInPixel'
        );

        if (empty($bucket)) {
            throw new BceClientException("The parameter bucket "
                ."should NOT be null or empty string");
        }

        if (empty($key)) {
            throw new BceClientException("The parameter key "
                ."should NOT be null or empty string");
        }

        $body = array(
            'bucket' => $bucket,
            'key' => $key,
        );
        if ($verticalAlignment !== null) {
            $body['verticalAlignment'] = $verticalAlignment;
        }
        if ($horizontalAlignment !== null) {
            $body['horizontalAlignment'] = $horizontalAlignment;
        }
        if ($verticalOffsetInPixel !== null) {
            $body['verticalOffsetInPixel'] = $verticalOffsetInPixel;
        }
        if ($horizontalOffsetInPixel !== null) {
            $body['horizontalOffsetInPixel'] = $horizontalOffsetInPixel;
        }

        return $this->sendRequest(
            HttpMethod::POST,
            array(
                'config' => $config,
                'body' => json_encode($body),
            ),
            '/watermark'
        );
    }