public function insertSnapshot( $id, $snapshot ) {
		$marshaler = new Marshaler();

		$snapshot_item = [
			'project'           => strtolower( $snapshot['project'] ),
			'id'                => $id,
			'time'              => time(),
			'description'       => $snapshot['description'],
			'author'            => $snapshot['author'],
			'multisite'         => $snapshot['multisite'],
			'sites'             => $snapshot['sites'],
			'table_prefix'      => $snapshot['table_prefix'],
			'subdomain_install' => $snapshot['subdomain_install'],
			'size'              => $snapshot['size'],
			'wp_version'        => $snapshot['wp_version'],
			'repository'        => $snapshot['repository'],
		];

		$snapshot_json = json_encode( $snapshot_item );

		try {
			$result = $this->client->putItem(
				[
					'TableName' => 'wpsnapshots-' . $this->repository,
					'Item'      => $marshaler->marshalJson( $snapshot_json ),
				]
			);
		} catch ( \Exception $e ) {
			if ( 'AccessDeniedException' === $e->getAwsErrorCode() ) {
				Log::instance()->write( 'Access denied. You might not have access to this project.', 0, 'error' );
			}

			Log::instance()->write( 'Error Message: ' . $e->getMessage(), 1, 'error' );
			Log::instance()->write( 'AWS Request ID: ' . $e->getAwsRequestId(), 1, 'error' );
			Log::instance()->write( 'AWS Error Type: ' . $e->getAwsErrorType(), 1, 'error' );
			Log::instance()->write( 'AWS Error Code: ' . $e->getAwsErrorCode(), 1, 'error' );

			return false;
		}

		return $snapshot_item;
	}